services: app: build: context: . dockerfile: Dockerfile.dev restart: unless-stopped ports: - ${PORT}:${PORT} environment: APP_ENV: ${APP_ENV} PORT: ${PORT} BLUEPRINT_DB_HOST: mysql_bp BLUEPRINT_DB_PORT: ${BLUEPRINT_DB_PORT} BLUEPRINT_DB_DATABASE: ${BLUEPRINT_DB_DATABASE} BLUEPRINT_DB_USERNAME: ${BLUEPRINT_DB_USERNAME} BLUEPRINT_DB_PASSWORD: ${BLUEPRINT_DB_PASSWORD} BLUEPRINT_DB_MAX_IDLE_CONNS: ${BLUEPRINT_DB_MAX_IDLE_CONNS} BLUEPRINT_DB_MAX_OPEN_CONNS: ${BLUEPRINT_DB_MAX_OPEN_CONNS} BLUEPRINT_DB_CONN_MAX_LIFETIME: ${BLUEPRINT_DB_CONN_MAX_LIFETIME} LOGGER_LOG_LEVEL: ${LOGGER_LOG_LEVEL} LOGGER_FILE_LOG_NAME: ${LOGGER_FILE_LOG_NAME} LOGGER_MAX_SIZE: ${LOGGER_MAX_SIZE} LOGGER_MAX_BACKUPS: ${LOGGER_MAX_BACKUPS} LOGGER_MAX_AGE: ${LOGGER_MAX_AGE} LOGGER_COMPRESS: ${LOGGER_COMPRESS} volumes: - .:/app # Mount current directory to /app in container command: air # Use air for hot-reload depends_on: mysql_bp: condition: service_healthy networks: - blueprint mysql_bp: image: mysql:latest platform: linux/arm64 restart: unless-stopped environment: MYSQL_DATABASE: ${BLUEPRINT_DB_DATABASE} MYSQL_USER: ${BLUEPRINT_DB_USERNAME} MYSQL_PASSWORD: ${BLUEPRINT_DB_PASSWORD} MYSQL_ROOT_PASSWORD: ${BLUEPRINT_DB_ROOT_PASSWORD} ports: - "${BLUEPRINT_DB_PORT}:3306" volumes: - mysql_volume_bp:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "${BLUEPRINT_DB_USERNAME}", "--password=${BLUEPRINT_DB_PASSWORD}", "--silent"] interval: 10s timeout: 5s retries: 5 start_period: 40s networks: - blueprint phpmyadmin: image: arm64v8/phpmyadmin:latest restart: unless-stopped ports: - "8081:80" environment: PMA_HOST: mysql_bp PMA_PORT: 3306 MYSQL_ROOT_PASSWORD: ${BLUEPRINT_DB_ROOT_PASSWORD} depends_on: mysql_bp: condition: service_healthy networks: - blueprint volumes: mysql_volume_bp: networks: blueprint: