docker compose mysql
файл .env
DB_HOST=db
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=test
DB_PASSWORD=test
DATABASE_URL="mysql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_DATABASE}?schema=public"
Docker file
version: '3.8'
services:
test.api:
build:
dockerfile: Dockerfile
context: .
target: development
volumes:
- .:/usr/src/app
env_file:
- .env
command: npm run start:dev
ports:
- 6545:6545
networks:
- test-nest-network
redis:
image: 'redis:alpine'
ports:
- '${FORWARD_REDIS_PORT:-6379}:6379'
volumes:
- test-redis:/data
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
retries: 3
timeout: 5s
db:
image: 'mysql/mysql-server:8.0'
restart: always
environment:
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ALLOW_EMPTY_PASSWORD: 1
ports:
- '3306:3306'
networks:
- test-nest-network
volumes:
- test-mysql:/var/lib/mysql
adminer:
image: adminer
restart: always
depends_on:
- db
ports:
- 8080:8080
networks:
- test-nest-network
networks:
test-nest-network:
volumes:
test-redis:
driver: local
test-mysql:
driver: local
при коннекте пишет
P1001: Can't reach database server at `db`:`3306`
Источник: Stack Overflow на русском