My site has a separate admin project. Both connect to the same database.
How do I get this working locally so when I run sail up
in the admin project it does not try to create a new container for the database. I want to connect to the same database that my main application connects to. I do not need both projects to run at the same time locally.
Adding both docker.compose.yml to make it clearer. Main:
version: '3'
services:
laravel.test:
build:
context: ./docker/8.0
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.0/app
extra_hosts:
- 'host.docker.internal:host-gateway'
ports:
- '${APP_PORT:-80}:80'
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
volumes:
- '.:/var/www/html'
networks:
- sail
depends_on:
- mysql
- selenium
mysql:
image: 'mysql:8.0'
cap_add:
- SYS_NICE
ports:
- '${FORWARD_DB_PORT:-3306}:3306'
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
volumes:
- 'sailmysql:/var/lib/mysql'
networks:
- sail
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
retries: 3
timeout: 5s
selenium:
image: 'selenium/standalone-chrome'
volumes:
- '/dev/shm:/dev/shm'
ports:
- '${FORWARD_SELENIUM_PORT:-4444}:4444'
- '${FORWARD_SELENIUM_HEADFUL_PORT:-7900}:7900'
networks:
- sail
networks:
sail:
driver: bridge
volumes:
sailmysql:
driver: local
Second:
version: '3'
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.0
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.0/app
extra_hosts:
- 'host.docker.internal:host-gateway'
cap_add:
- SYS_NICE
ports:
- 81:80 #'${APP_PORT:-80}:80'
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
volumes:
- '.:/var/www/html'
networks:
- sail
depends_on:
- mysql
# mysql:
# image: 'mysql:8.0'
# ports:
# - '${FORWARD_DB_PORT:-3306}:3306'
# environment:
# MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
# MYSQL_DATABASE: '${DB_DATABASE}'
# MYSQL_USER: '${DB_USERNAME}'
# MYSQL_PASSWORD: '${DB_PASSWORD}'
# MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
# volumes:
# - 'sailmysql:/var/lib/mysql'
# networks:
# - sail
# healthcheck:
# test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
# retries: 3
# timeout: 5s
networks:
sail:
driver: bridge
volumes:
sailmysql:
driver: local