Umgebungsbau mit Docker für Anfänger

Da wir die Umgebung mit Docker erstellt haben, werden wir das Verfahren einführen. Da ich die Umgebung zum ersten Mal mit Docker erstellt habe, hoffe ich, dass sie so hilfreich wie möglich ist.

Umgebung
Umgebung Ausführung
PHP 7.0.27
FW CakePHP3.2.13
Apache 2.2.15
OS CentOS6.9
DB MySQL5.6.39

Prozedur 1. Docker-Ordner DL 2. Git Clone 3. Geben Sie den Docker-Container ein 4. Starten Sie Apache 5. Dokumentstammeinstellungen 6. Composer install 7. Starten Sie MySQL 8. Datenbank erstellen 9. App.php Einstellungen 10. Datenbankverbindung

Erstellen wir eine Umgebung

Docker-Ordner DL Dieses Mal lade ich alle DockerFile-, yml-Dateien usw. herunter, die ich ursprünglich vorbereitet habe. Unten ist die Ordnerstruktur.
-/
 |- docker-compose.yml
 |- docker
    |- db
     |   |- Dockerfile
     |   |- files
     |      |- entry.sh
     |      |- my.cnf
    |     
    |
    |- web
        |- Dockerfile
        |- files
           |- composer.phar
           |- dev.conf
           |- php.ini
           |- ssl.conf
 

Git Clone

Holen Sie sich das Projekt auf Github. Die Ordnerstruktur ist wie folgt.
-/
 |- project
 |- docker-compose.yml
 |- docker

Geben Sie den Docker-Container ein

Erstellen Sie ein Bild und starten Sie den Container, bevor Sie den Container betreten. Gehen Sie in der Befehlszeile wie folgt vor:

  • Bauen
docker build
 // Sie können das Bild aus der Docker-Datei abrufen, indem Sie es erstellen.
  • Container starten
$ docker-compose up -d
 // Den Container starten.

Mit dem folgenden Befehl können Sie den Container gleichzeitig erstellen und starten.

  • Container erstellen und starten
$ docker-compose up -d --build
 // Starten Sie den Container, indem Sie das Image erstellen.
$ docker ps
 //起動中のコンテナの確認

Informationen zu Option -d
$ docker-compose up
 // Sie können nicht im selben Terminal arbeiten, da Sie den Container im Terminal starten.

$ docker-compose up -d // Da der Container im Hintergrund gestartet wird, können Sie im selben Terminal arbeiten.

Geben Sie den Container mit dem folgenden Befehl ein.

$ docker exec -it CONTAINER ID /bin/bash
 // CONTAINER ID kann bestätigt werden, wenn Docker ps fertig ist.

Starten Sie Apache Starten Sie Apache mit dem folgenden Befehl im Webcontainer.
service httpd start
 Starten Sie Apache

service httpd stop
 Apache blieb stehen

service httpd restart
 Apache Neustart

/etc/init.d/httpd status
 Apache-Statusprüfung

Dokumentstammeinstellung Überprüfen Sie die Dokumentstammeinstellungen in httpd.conf im Web. Mit dieser Verzeichnisstruktur scheint es kein Problem mit var / www / html zu geben.

composer install

Composer konnte nicht installiert werden. Ich dachte, es sei ein Problem mit der Zugriffsberechtigung, also habe ich es in Zugriffsberechtigung 777 geändert. In Bezug auf die Zugriffsberechtigung habe ich auf den folgenden Artikel verwiesen. https://qiita.com/t-a-run/items/239ed690ece7a011804a

Ich konnte Folgendes ausführen. Die Composer-Installation wurde übrigens im Projektordner durchgeführt.

compser install

Wenn Sie in diesem Status zugreifen, wird im Browser ein Datenbankfehler angezeigt. Der Inhalt des Fehlers besteht darin, dass keine solche (verbundene) Datei gefunden werden kann.

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

Starten Sie mysql Führen Sie MySQL aus. Wenn Sie den Webcontainer eingeben, geben Sie auch den Datenbankcontainer ein.
service mysqld status
 //mysqlの起動状態の確認
service mysqld start
 //mysqlの起動

Bestätigen Sie Ihren ursprünglichen Benutzernamen und Ihr Passwort, bevor Sie sich anmelden. Überprüfen Sie mysqld.log im DB-Container.

cat mysqld.log

Holen Sie sich das Benutzername Passwort geschrieben in Ein temporäres Passwort ist ~. Benutzername: root

Melden Sie sich bei der Datenbank an.

 docker exec -it container ID mysql -u root -p

Passwort zurücksetzen-> Datenbank erstellen-> Tabelle erstellen.

app.php-Einstellungen Zum Zeitpunkt des Git-Klons ist app.php nicht enthalten. Lass es uns schaffen.
-/
 |- project
    |- config
        |-app.php
Wie man app.php schreibt, kann durch Suchen im Internet gefunden werden. Dieses Mal habe ich die an anderer Stelle verwendete Datei kopiert und den Inhalt bearbeitet. Ich berühre hauptsächlich nur die Datenbank.
 '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',
 'Passwort' => 'Passwort beim Erstellen der Datenbank festgelegt',
 'Datenbank' => 'Passwort beim Erstellen der Datenbank festgelegt',
 'port' => portnummer,
            'encoding' => 'utf8',
            'timezone' => 'UTC',
            'flags' => [],
            'cacheMetadata' => true,
            'log' => false,

cat mysqld.log Holen Sie sich das Passwort geschrieben in Ein temporäres Passwort ist -> Starten Sie mysql im Datenbankcontainer neu, melden Sie sich an> Passwort zurücksetzen-> Datenbank erstellen-> Tabelle erstellen->

Datenbankverbindung Ich habe einen Verbindungstest mit einer Schnellverbindung mit Sequel Pro durchgeführt. Die Verbindung wurde erfolgreich abgeschlossen.

Ich habe in meinem Browser nach localhost gesucht und es wurde erfolgreich geöffnet.

Referenzen

Lassen Sie uns den Inhalt von docker-compose.yml verstehen https://futureys.tokyo/lets-understand-contents-of-docker-compose-yml/

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

Schreiben und Verwenden von Dockerfile https://blog.codecamp.jp/docker-file-how-to

Geben Sie die Shell des laufenden Docker-Containers ein https://qiita.com/sekizo/items/27cc9b406332afc674f6

Datenbankerstellung https://noumenon-th.net/programming/2019/04/01/docker-entrypoint-initdb01/

So schreiben Sie Berechtigungen zum Festlegen mit chmod https://qiita.com/irasally/items/6ebc3c68e22905fb7330

Recommended Posts

Umgebungsbau mit Docker für Anfänger
[Docker] Rails 5.2-Umgebungskonstruktion mit Docker
[Umgebungskonstruktion mit Docker] Rails 6 & MySQL 8
Aufbau einer GPU-Umgebung mit Docker [Version Oktober 2020]
Schienenumgebungskonstruktion mit Docker (persönliche Apokalypse)
Aufbau einer Laravel-Entwicklungsumgebung mit Docker (Mac)
Erstellen einer Umgebung für Laravel + MySQL + phpMyadmin mit Docker
Aufbau der Rails Docker-Umgebung
Konstruktionsverfahren für die Docker-Umgebung "Rails 6 x MySQL 8" für die gemeinsame Nutzung mit Teams
Umgebungskonstruktionsverfahren für die Verwendung von PowerMock mit JUnit
CI / CD-Übung für Anfänger - Teil 1 - Umweltbau
Konstruktions- und Entwicklungsverfahren für lokale WordPress-Umgebungen mit Docker
Konstruktionsnotiz für die MySQL 5.7 (Docker) -Umgebung
Redmine (Docker) Umgebungskonstruktionsnotiz
Erstellen einer Docker-Umgebung mit WSL
Aufbau der Docker x Spring Boot-Umgebung
[Docker] postgres, pgadmin4-Umgebungskonstruktion
So erstellen Sie eine Docker-Umgebung mit Gradle for IntelliJ
Konstruktionshandbuch für eine stabile Entwicklungsumgebung für "Rails6" mit "Docker-compose"
[Java] Umgebungskonstruktionsverfahren zum Entwickeln von Streben 1.3 mit Eclipse
Erstellen einer Datenbankumgebung mit Docker in Spring Boot (IntellJ)
Erstellen Sie mit Docker eine Vue3-Umgebung!
Erstellen Sie mit Docker eine lokale Couchbase-Umgebung
Erstellen Sie mit Docker eine Node.js-Umgebung
Umgebungskonstruktion für die Entwicklung von Servlet-Anwendungen
Anfänger installieren Docker für Mac und bereiten die Betriebsumgebung php7.0 vor
Konstruktion der Laravel + Docker Laradock-Nutzungsumgebung
[Verfahren 1 für Anfänger] Ruby on Rails: Aufbau einer Entwicklungsumgebung
[Folio LSP] Grob Docker (für Anfänger)
Erstellen Sie mit Docker eine SolrCloud-Überprüfungsumgebung
Konstruktionsverfahren für Rails on Docker-Umgebungen
Erstellen Sie eine Entwicklungsumgebung für Rails-Anwendungen mit Docker [Docker, Rails, Puma, Nginx, MySQL]
[Java & SpringBoot] Umgebungskonstruktion für Mac
Erstellen Sie mit Laradock eine Docker + Laravel-Umgebung
Erstellen einer Entwicklungsumgebung für Ruby on Rails mit Docker + VSCode (Remote Container)
Verfahren zum Erstellen einer Rails-Anwendungsentwicklungsumgebung mit Docker [Rails, MySQL, Docker]
Erstellen einer PostgreSQL-Umgebung mit Docker (vom Setup bis kurz vor der Entwicklung)
Erstellen Sie mit Docker Compose eine Entwicklungsumgebung für Django + MySQL + nginx
SQL-Anweisungslernen ~ Umgebungskonstruktion ~ Docker + MySQL
Erstellen einer Rails 6- und PostgreSQL-Umgebung mit Docker
Sapper × Go (Echo) × Aufbau einer Docker-Entwicklungsumgebung
Erstellen Sie mit Docker eine PureScript-Entwicklungsumgebung