Construction d'environnement avec Docker pour les débutants

Puisque nous avons construit l'environnement à l'aide de docker, nous allons introduire la procédure. Depuis que j'ai construit l'environnement avec docker pour la première fois, j'espère que cela sera utile autant que possible.

Environnement
environnement version
PHP 7.0.27
FW CakePHP3.2.13
Apache 2.2.15
OS CentOS6.9
DB MySQL5.6.39

Procédure 1. Dossier Docker DL 2. Git Clone 3. Entrez dans le conteneur Docker 4. Démarrez Apache 5. Paramètres de racine du document 6. Composer install 7. Démarrez mysql 8. Créer une base de données 9. Paramètres App.php 10. Connexion à la base de données

Construisons un environnement

Dossier Docker DL Cette fois, je télécharge tous les fichiers DockerFile, yml, etc. que j'ai préparés à l'origine. Voici la structure des dossiers.
-/
 |- docker-compose.yml
 |- docker
    |- db
     |   |- Dockerfile
     |   |- files
     |      |- entry.sh
     |      |- my.cnf
    |     
    |
    |- web
        |- Dockerfile
        |- files
           |- composer.phar
           |- dev.conf
           |- php.ini
           |- ssl.conf
 

Git Clone

Obtenez le projet sur github. La structure des dossiers est la suivante.
-/
 |- project
 |- docker-compose.yml
 |- docker

Entrez dans le conteneur Docker

Créez une image et démarrez le conteneur avant d'entrer dans le conteneur. Sur la ligne de commande, procédez comme suit:

  • Construire
docker build
 // Vous pouvez obtenir l'image du fichier docker en construisant.
  • Démarrer le conteneur
$ docker-compose up -d
 // Démarre le conteneur.

Vous pouvez créer et démarrer le conteneur en même temps avec la commande suivante.

  • Construire et lancer un conteneur
$ docker-compose up -d --build
 // Démarre le conteneur en construisant l'image.
$ docker ps
 //起動中のコンテナの確認

À propos de l'option -d
$ docker-compose up
 // Vous ne pouvez pas travailler dans le même terminal car vous démarrez le conteneur dans le terminal.

$ docker-compose up -d // Puisque le conteneur est démarré en arrière-plan, vous pouvez travailler dans le même terminal.

Entrez dans le conteneur avec la commande suivante.

$ docker exec -it CONTAINER ID /bin/bash
 // L'ID DU CONTAINER peut être confirmé lorsque docker ps est terminé.

Démarrer Apache Démarrez Apache avec la commande suivante dans le conteneur Web.
service httpd start
 Démarrez Apache

service httpd stop
 Apache s'est arrêté

service httpd restart
 Redémarrage Apache

/etc/init.d/httpd status
 Vérification de l'état d'Apache

Paramètre racine du document Vérifiez les paramètres de racine du document dans httpd.conf sur le Web. Avec cette structure de répertoires, il ne semble y avoir aucun problème avec var / www / html.

composer install

Impossible d'installer le compositeur. Je pensais que c'était un problème d'autorisation d'accès, alors je l'ai changé pour obtenir l'autorisation d'accès 777. Concernant l'autorité d'accès, j'ai renvoyé à l'article suivant. https://qiita.com/t-a-run/items/239ed690ece7a011804a

J'ai pu exécuter ce qui suit. À propos, l'installation du compositeur a été effectuée dans le dossier du projet.

compser install

Si vous accédez dans cet état, une erreur de base de données sera affichée dans le navigateur. Le contenu de l'erreur est qu'aucun fichier de ce type (connecté) ne peut être trouvé.

database error(SQLSTATE[HY000] [2002] No such file or directory

Démarrez mysql Exécutez mysql. Lorsque vous entrez dans le conteneur Web, vous entrez également dans le conteneur db.
service mysqld status
 //mysqlの起動状態の確認
service mysqld start
 //mysqlの起動

Confirmez votre nom d'utilisateur et votre mot de passe initiaux avant de vous connecter. Vérifiez mysqld.log dans le conteneur DB.

cat mysqld.log

Obtenez le mot de passe du nom d'utilisateur écrit Un mot de passe temporaire est ~. Nom d'utilisateur: root

Connectez-vous à la base de données.

 docker exec -it ID du conteneur mysql -u root -p

Réinitialiser le mot de passe-> Créer une base de données-> Créer une table.

paramètres app.php Au moment de git clone, app.php n'est pas inclus. Créons-le.
-/
 |- project
    |- config
        |-app.php
Comment écrire app.php peut être trouvé en recherchant sur le net. Cette fois, j'ai copié le fichier utilisé ailleurs et modifié le contenu. Je ne touche principalement que la base de données.
 'Datasources' => [
        'default' => [
            'className' => 'Cake\Database\Connection',
            'driver' => 'Cake\Database\Driver\Mysql',
            'persistent' => false,
            'host' => 'localhost',
            /**
             * CakePHP will use the default DB port based on the driver selected
             * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
             * the following line and set the port accordingly
             */
            //'port' => 'non_standard_port_number',
            'username' => 'root',
 'password' => 'mot de passe défini lors de la création de la base de données',
 'database' => 'Mot de passe défini lors de la création de la base de données',
 'port' => numéro de port,
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'flags' => [],
            'cacheMetadata' => true,
            'log' => false,

cat mysqld.log Obtenez le mot de passe écrit Un mot de passe temporaire est -> Redémarrez mysql dans le conteneur db, connectez-vous> réinitialisez le mot de passe-> créez une base de données-> créez une table->

Connexion à la base de données J'ai effectué un test de connexion avec une connexion rapide à l'aide de sequel pro. La connexion a été établie avec succès.

J'ai recherché localhost dans mon navigateur et il s'est ouvert avec succès.

Références

Comprenons le contenu de docker-compose.yml https://futureys.tokyo/lets-understand-contents-of-docker-compose-yml/

Docker compose Kotobuki Hands-on https://qiita.com/TsutomuNakamura/items/7e90e5efb36601c5bc8a

Comment écrire et utiliser Dockerfile https://blog.codecamp.jp/docker-file-how-to

Entrez le shell du conteneur Docker en cours d'exécution https://qiita.com/sekizo/items/27cc9b406332afc674f6

Création de base de données https://noumenon-th.net/programming/2019/04/01/docker-entrypoint-initdb01/

Comment écrire des autorisations à définir avec chmod https://qiita.com/irasally/items/6ebc3c68e22905fb7330

Recommended Posts

Construction d'environnement avec Docker pour les débutants
[Docker] Construction de l'environnement Rails 5.2 avec docker
[Construction de l'environnement avec Docker] Rails 6 et MySQL 8
Construction de l'environnement GPU avec Docker [version d'octobre 2020]
Construction d'environnement de rails avec Docker (apocalypse personnelle)
Construction de l'environnement de développement Laravel avec Docker (Mac)
Construire un environnement pour Laravel + MySQL + phpMyadmin avec Docker
Construction de l'environnement Rails Docker
Procédure de construction de l'environnement Docker "Rails 6 x MySQL 8" à partager avec les équipes
Procédure de construction d'environnement pour l'utilisation de PowerMock avec JUnit
Pratique CI / CD pour débutants - Partie 1 - Construction de l'environnement
Procédure de construction et de développement de l'environnement local Wordpress avec Docker
Mémo de construction de l'environnement MySQL 5.7 (Docker)
Mémo de construction de l'environnement Redmine (Docker)
Créer un environnement Docker avec WSL
Construction de l'environnement Docker × Spring Boot
[Docker] postgres, construction de l'environnement pgadmin4
Comment créer un environnement Docker avec Gradle pour IntelliJ
Manuel de construction de l'environnement de développement stable pour "Rails6" avec "Docker-compose"
[Java] Procédure de construction de l'environnement pour le développement de struts 1.3 avec Eclipse
Création d'un environnement de base de données avec Docker dans Spring Boot (IntellJ)
Créez un environnement Vue3 avec Docker!
Créer un environnement local Couchbase avec Docker
Créer un environnement Node.js avec Docker
Construction d'environnement pour le développement d'applications Servlet
Les débutants installent Docker pour Mac et préparent l'environnement d'exploitation php7.0
Construction de l'environnement d'utilisation Laravel + Docker Laradock
[Procédure 1 pour les débutants] Ruby on Rails: Construction d'un environnement de développement
[Folio LSP] Roughly Docker (pour les débutants)
Créer un environnement de vérification SolrCloud avec Docker
Rails sur la procédure de construction de l'environnement Docker
Créez un environnement de développement d'applications Rails avec Docker [Docker, Rails, Puma, Nginx, MySQL]
[Java & SpringBoot] Construction de l'environnement pour Mac
Créez un environnement Docker + Laravel avec Laradock
Création d'un environnement de développement pour Ruby on Rails à l'aide de Docker + VSCode (Remote Container)
Procédure de création d'un environnement de développement d'applications Rails avec Docker [Rails, MySQL, Docker]
Construire un environnement PostgreSQL avec Docker (de la configuration à juste avant le développement)
Créer un environnement de développement pour Django + MySQL + nginx avec Docker Compose
Apprentissage des instructions SQL ~ Construction de l'environnement ~ Docker + MySQL
Construction de Rails 6 et environnement PostgreSQL avec Docker
Sapper × Go (écho) × Construction de l'environnement de développement Docker
Créer un environnement de développement PureScript avec Docker
Construire un environnement Rails 6 + MySQL avec Docker compose