
本番環境でdocker-compose up
した時に
no such service: mysql
などのエラーが出て、コンテナを立ち上げることができない場合。
docker-compose.yml駄目な例
version: "3.9"
services:
app:
build: ./infra/php
volumes:
- ./backend:/work
web:
image: nginx:1.20-alpine
ports:
- 80:80
volumes:
- ./backend:/work
- ./infra/nginx/default.conf:/etc/nginx/conf.d/default.conf
working_dir: /work
db:
build: ./infra/mysql
volumes:
- db-store:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOST=db
- PMA_USER=phper
- PMA_PASSWORD=secret
links:
- mysql # ここがあかん
ports:
- 8081:80
volumes:
- /sessions
volumes:
db-store:
↓docker-compose.ymlいい例
version: "3.9"
services:
app:
build: ./infra/php
volumes:
- ./backend:/work
web:
image: nginx:1.20-alpine
ports:
- 80:80
volumes:
- ./backend:/work
- ./infra/nginx/default.conf:/etc/nginx/conf.d/default.conf
working_dir: /work
db:
build: ./infra/mysql
volumes:
- db-store:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOST=db
- PMA_USER=phper
- PMA_PASSWORD=secret
links:
- db # こうしろ
ports:
- 8081:80
volumes:
- /sessions
volumes:
db-store:
こんな風に修正したらローカル環境と同じように動くようになった。
別にこの部分を変えたからといって、ローカル環境でmysqlやphpmyadminが使えなくなるとかはなかった。
参考にした記事
ローカルにDocker環境を構築した時の記事↓
【超入門】20分でLaravel開発環境を爆速構築するDockerハンズオン - Qiita
本番環境にデプロイするときに見た記事↓
ConoHa VPSでDockerを使う。アプリケーションの公開も試してみます。 | ガジェラン
本番環境にうまくデプロイできなかったときに見た記事↓
Dockerコンテナ内でrails db:createすると、Unknown MySQL server host 'db' (-2)と出る。
本番環境
- Conoha VPS 4Core 4GBプラン(アプリケーションからDockerプリインストールを選択)
- OS:多分ubuntu
- php8
- Laravel8