version: '3.8' services: mysql: image: mysql:8.0 container_name: sproutly_db restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: sproutly MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} volumes: - mysql_data:/var/lib/mysql - ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql networks: - sproutly_net healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD}"] interval: 10s timeout: 5s retries: 10 start_period: 30s backend: build: ./backend container_name: sproutly_api restart: unless-stopped environment: DB_HOST: mysql DB_PORT: 3306 DB_NAME: sproutly DB_USER: ${MYSQL_USER} DB_PASSWORD: ${MYSQL_PASSWORD} SECRET_KEY: ${SECRET_KEY} depends_on: mysql: condition: service_healthy networks: - sproutly_net nginx: build: ./nginx container_name: sproutly_web restart: unless-stopped ports: - "8053:80" depends_on: - backend networks: - sproutly_net networks: sproutly_net: driver: bridge volumes: mysql_data: