services: mysql: image: ${MYSQL_IMAGE} container_name: ${MYSQL_CONTAINER_NAME} restart: ${COMPOSE_RESTART_POLICY} env_file: - ./.env ports: - "${MYSQL_HOST_PORT}:3306" volumes: - volume:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-p${MYSQL_ROOT_PASSWORD}"] interval: ${MYSQL_HEALTHCHECK_INTERVAL} timeout: ${MYSQL_HEALTHCHECK_TIMEOUT} retries: ${MYSQL_HEALTHCHECK_RETRIES} backend: build: context: ${BACKEND_BUILD_CONTEXT} dockerfile: ${BACKEND_DOCKERFILE} container_name: ${BACKEND_CONTAINER_NAME} restart: ${COMPOSE_RESTART_POLICY} depends_on: mysql: condition: service_healthy env_file: - ./.env ports: - "${BACKEND_HOST_PORT}:${SERVER_PORT}" frontend: build: context: ${FRONTEND_BUILD_CONTEXT} dockerfile: ${FRONTEND_DOCKERFILE} args: VITE_API_BASE_URL: ${VITE_API_BASE_URL} container_name: ${FRONTEND_CONTAINER_NAME} restart: ${COMPOSE_RESTART_POLICY} depends_on: - backend ports: - "${FRONTEND_HOST_PORT}:80" swagger-ui: image: ${SWAGGER_UI_IMAGE} container_name: ${SWAGGER_UI_CONTAINER_NAME} restart: ${COMPOSE_RESTART_POLICY} depends_on: - backend environment: URL: ${SWAGGER_SPEC_URL} ports: - "${SWAGGER_UI_HOST_PORT}:8080" volumes: volume: