docker-compose up -d --build
============================
【実行結果】
Creating mysql ... done
Creating app ... done
Creating node ... done
正常にビルドが完了してるな!
Dockerのステータスを確認します。
docker-compose ps
=================
【実行結果】
Name Command State Ports
---------------------------------------------------------------------------------------
app docker-php-entrypoint apac ... Up 80/tcp, 0.0.0.0:8080->8080/tcp,:::8080->8080/tcp
mysql docker-entrypoint.sh mysqld Exit 1
node docker-entrypoint.sh node Up 0.0.0.0:81->81/tcp,:::81->81/tcp
あれ?dbコンテナだけ立ち上がってない!
ymlファイルの書き方も間違ってないし、ビルドも正常に実行されていたしなぜ立ち上がらないんだろう?
エラー内容がわからないときはDocker Logを下記コマンドで出力することができます!
docker logs コンテナ名
今回の場合はmysqlコンテナのLogが見たいので、下記のような記述になります。
docker logs mysql
==================
【実行結果】
2022-02-23 08:31:49+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2022-02-23 08:31:49+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2022-02-23 08:31:49+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2022-02-23 08:31:49+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified
You need to specify one of the following:
- MYSQL_ROOT_PASSWORD
- MYSQL_ALLOW_EMPTY_PASSWORD
- MYSQL_RANDOM_ROOT_PASSWORD
下記のようなエラーログが出ていることがわかりますね!
2022-02-23 08:31:49+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified
データベースのパスワードオプションが指定されていませんという内容のエラーが出力されています。
You need to specify one of the following:
- MYSQL_ROOT_PASSWORD
- MYSQL_ALLOW_EMPTY_PASSWORD
- MYSQL_RANDOM_ROOT_PASSWORD
docker-compose ps
=================
【実行結果】
app docker-php-entrypoint apac ... Up 80/tcp, 0.0.0.0:8080->8080/tcp,:::8080->8080/tcp
mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp,:::3306->3306/tcp, 33060/tcp
node docker-entrypoint.sh node Up 0.0.0.0:81->81/tcp,:::81->81/tcp
無事にmysqlコンテナも立ち上がりました!
おまけ
DockerLogは下記コマンドでも出すことができます。
docker-compose logs
===================
Name Command State Ports
--------------------------------------------------------------------------------------------------
app | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.23.0.3. Set the 'ServerName' directive globally to suppress this message
app | [Wed Feb 23 12:33:53.136371 2022] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.51 (Debian) PHP/7.4.25 configured -- resuming normal operations
app | [Wed Feb 23 12:33:53.136395 2022] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
node | Welcome to Node.js v17.5.0.
node | Type ".help" for more information.
mysql | 2022-02-23 12:33:52+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
mysql | 2022-02-23 12:33:52+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
mysql | 2022-02-23 12:33:52+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
mysql | 2022-02-23 12:33:52+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified
mysql | You need to specify one of the following:
mysql | - MYSQL_ROOT_PASSWORD
mysql | - MYSQL_ALLOW_EMPTY_PASSWORD
mysql | - MYSQL_RANDOM_ROOT_PASSWORD