Laravelのwebアプリを作成するために、Docker-composeで環境構築してコンテナを起動したところMySQLの立ち上げでエラーが発生しました。
自分用の記録としてエラーの解消方法をメモします。
##開発環境
docker-compose version'3'
MySQL '5.7'
##やりたいこと
Docker-composeで環境構築してLaravelのアプリを作成したい。
ということでdocker-compose.yml
を以下の通り編集して、docker-compose up
コマンドを叩いた。
version: '3'
services:
web:
image: nginx:1.15.6
ports:
- '8000:80'
depends_on:
- app
volumes:
- ./docker/web/default.conf:/etc/nginx/conf.d/default.conf
- .:/var/www/html
app:
build: ./docker/php
volumes:
- .:/var/www/html
depends_on:
- mysql
mysql:
platform: linux/x86_64
image: mysql:5.7
environment:
MYSQL_DATABASE: memo_app
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: password
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
##エラー内容
Bind for 0.0.0.0:3306 failed: port is already allocated
エラー文によると、3306番ポートが既に割り当てられているので、MySQLが起動できずエラーが発生してしまったらしい。
他のアプリでもDocker-composeとMySQLでアプリを作成していたので、そのコンテナが原因か。
##対処方法
まずは次のコマンドで現在起動中のコンテナを確認。
docker ps
起動中のコンテナの中から、3306番ポートを使用しているコンテナを停止する。
docker stop (対象のCONTAINER ID)
これで無事にdocker-compose up
できました!!
Comments
Let's comment your feelings that are more than good