dbコンテナだけが立ち上がらないdocker-compose build
laravel + dockerでやっていたプロジェクト。
最近dockerをリフレッシュしてコンテナが消えたので環境構築をし直す機会がありました。
いつもどおりgitリポジトリから
git clone リポジトリURL
docker-compose build
docker-compose up
とコマンドを入れていく
…
データベースコンテナだけが起動に失敗している。
エラーログを見ると
MYSQL_USER="root", MYSQL_USER and MYSQL_PASSWORD are for configuring a regular user and cannot be used for the root user zac_db | Remove MYSQL_USER="root" and use one of the following to control the root user password:
というエラーが出ていた。
以前と同じやり方なのになんで?
英語力低いのでちょっと何言ってるのかわからないですね状態なので、取り敢えずgoogle翻訳にかけてみる
mysql_user = "root"、mysql_user、およびmysql_passwordは、通常のユーザーを構成するためのものであり、rootユーザーには使用できません。 mysql_user = "root"を削除し、次のいずれかを使用してrootユーザーのパスワードを制御します。
???
はい?
取り敢えずrootという名前がだめらしい?
結論
rootを消してみた。
docker-compose.ymlのrootを
# db
db:
image: mysql:5.7.33
container_name: database
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: laravel
MYSQL_USER: root
MYSQL_PASSWORD: root
TZ: 'Asia/Tokyo'
以下に変更。rootをroot2に変更
# db
db:
image: mysql:5.7.33
container_name: database
environment:
MYSQL_ROOT_PASSWORD: root2
MYSQL_DATABASE: laravel
MYSQL_USER: root2
MYSQL_PASSWORD: root2
TZ: 'Asia/Tokyo'
…
通った。
database起動!
よくわからないが最近の仕様変更でrootを使用できなくなったらしい。root以外にすれば大丈夫そう。
なんでやねん
(セキュリティー的な問題?)
調べたら同じような症状で躓いている人が多そう。MySQLのDockerイメージが更新されたことが原因らしい
Author And Source
この問題について(dbコンテナだけが立ち上がらないdocker-compose build), 我々は、より多くの情報をここで見つけました https://qiita.com/wwwesk/items/fdd3e6a40ff437c7cdfd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .