Stack Overflow en español Asked on November 30, 2020
Tengo dos contenedores para un proyecto de laravel uno con mysql y otro con apache, al arrancar el de mysql me da error.
Lo primero que hago es parar todos los contenedores con el comando "docker-compose down" y por pantalla me sale esto
Stopping backend-forms_app_1 ... done
Removing backend-forms_app_1 ... done
Removing database ... done
Removing network backend-bringforms_default
Y si realizo un "docker-compose
Creating network "backend-forms_default" with the default driver
Creating database ...
Creating database ... error
WARNING: Host is already in use by another container
Creating backend-forms_app_1 ... done
ERROR: for db Cannot start service db: driver failed programming external connectivity on endpoint database (ee9216527529596af152a5e210b6f8a90e46badd3e29bb8f4c9e024b0da1cc2e): Bind for 0.0.0.0:3307 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
Fichero docker compose
version: '3.7'
services:
app:
build:
context: .
dockerfile: .docker/Dockerfile
image: laravelapp
command: php artisan serve --host 0.0.0.0 --port=8080
ports:
- 8080:8080
environment:
- SQL_HOST=db
volumes:
- ./:/var/www/html
db:
image: mysql:5.7
container_name: database
restart: always
ports:
- 3307:3306
environment:
- MYSQL_DATABASE=laraapp_db
- MYSQL_ALLOW_EMPTY_PASSWORD=1
- MYSQL_ROOT_PASSWORD=
- MYSQL_HOST=
volumes:
- mysql_data:/var/lib/mysql
volumes:
mysql_data:
El problema que tienes es que se esta ejecutando primero la imagen app
y luego la imagen de base de datos; la solucion para esto es sencilla debes agregar a la construccion de la imagen app
que dependa de la ejecucion de la base de datos algo como depends:db
el ejemplo completo a continuacion:
version: '3.7'
services:
app:
depends_on:
- db
build:
context: .
dockerfile: .docker/Dockerfile
image: laravelapp
command: php artisan serve --host 0.0.0.0 --port=8080
ports:
- 8080:8080
environment:
- SQL_HOST=db
volumes:
- ./:/var/www/html
db:
image: mysql:5.7
container_name: database
restart: always
ports:
- 3307:3306
environment:
- MYSQL_DATABASE=laraapp_db
- MYSQL_ALLOW_EMPTY_PASSWORD=1
- MYSQL_ROOT_PASSWORD=
- MYSQL_HOST=
volumes:
- mysql_data:/var/lib/mysql
volumes:
mysql_data:
Correct answer by JackNavaRow on November 30, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP