Skip to content

Instantly share code, notes, and snippets.

@umair313
Created January 26, 2023 21:10
Show Gist options
  • Save umair313/d8b0a200f1ba013673f03a75cc3f617a to your computer and use it in GitHub Desktop.
Save umair313/d8b0a200f1ba013673f03a75cc3f617a to your computer and use it in GitHub Desktop.
Docker Compose for Django and MySQL database with wait retry for database
version: '3.4'
x-common: &common
stdin_open: true
tty: true
networks:
- djangoproject
services:
django:
build:
context: .
dockerfile: ./Dockerfile.dev
container_name: web
command: bash -c "python manage.py runserver 0.0.0.0:8000"
ports:
- 8001:8000
env_file:
- ./config/env/dev/.django
volumes:
- ./:/code/
- web_static_volume:/code/static
- web_media_volume:/code/media
restart: on-failure
depends_on:
database:
condition: service_healthy
<<: [*common]
database:
container_name: web-database
image: mysql:8
ports:
- "3606:3606"
volumes:
- mysql_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: test_mysql
MYSQL_DATABASE: test_mysql
MYSQL_USER: test_mysql
MYSQL_PASSWORD: test_mysql
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
timeout: 20s
retries: 10
<<: [*common]
networks:
djangoproject:
driver: bridge
volumes:
web_static_volume:
web_media_volume:
mysql_data:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment