services: db: image: mysql:8 environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} volumes: - db_data:/var/lib/mysql restart: unless-stopped healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] interval: 10s timeout: 5s retries: 10 app: build: ./app ports: - "${WEB_PORT}:5000" environment: MYSQL_HOST: db MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} COLLECTION_INTERVAL: ${COLLECTION_INTERVAL} MAX_CONCURRENT_SSH: ${MAX_CONCURRENT_SSH} volumes: - ${SSH_KEY_PATH}:/app/ssh_key:ro - ${CONFIG_PATH}/infrastructure.conf:/app/infrastructure.conf:ro depends_on: db: condition: service_healthy restart: unless-stopped volumes: db_data: external: true name: ${CONTAINER_NAME}_db_data