version: '3' name: zeppelin-prod services: nginx: build: context: ./docker/production/nginx args: API_PORT: ${API_PORT:?Missing API_PORT} DOCKER_PROD_DOMAIN: ${DOCKER_PROD_DOMAIN:?Missing DOCKER_PROD_DOMAIN} ports: - "${DOCKER_PROD_WEB_PORT:?Missing DOCKER_PROD_WEB_PORT}:443" volumes: - ./:/zeppelin mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: ${DOCKER_PROD_MYSQL_ROOT_PASSWORD?:Missing DOCKER_PROD_MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: zeppelin MYSQL_USER: zeppelin MYSQL_PASSWORD: ${DOCKER_PROD_MYSQL_PASSWORD?:Missing DOCKER_PROD_MYSQL_PASSWORD} ports: - ${DOCKER_PROD_MYSQL_PORT:?Missing DOCKER_PROD_MYSQL_PORT}:3306 volumes: - ./docker/production/data/mysql:/var/lib/mysql command: --authentication-policy=mysql_native_password healthcheck: test: "/usr/bin/mysql --user=root --password=\"${DOCKER_PROD_MYSQL_ROOT_PASSWORD}\" --execute \"SHOW DATABASES;\"" interval: 5s timeout: 300s retries: 60 prepare_backend: build: context: ./docker/production/node args: DOCKER_USER_UID: ${DOCKER_USER_UID:?Missing DOCKER_USER_UID} DOCKER_USER_GID: ${DOCKER_USER_GID:?Missing DOCKER_USER_GID} depends_on: mysql: condition: service_healthy volumes: - ./:/zeppelin command: |- bash -c "cd /zeppelin/backend && npm ci && npm run build && npm run migrate-prod" api: build: context: ./docker/production/node args: DOCKER_USER_UID: ${DOCKER_USER_UID:?Missing DOCKER_USER_UID} DOCKER_USER_GID: ${DOCKER_USER_GID:?Missing DOCKER_USER_GID} restart: on-failure depends_on: - prepare_backend volumes: - ./:/zeppelin command: ["/bin/bash", "/zeppelin/docker/production/start-api.sh"] bot: build: context: ./docker/production/node args: DOCKER_USER_UID: ${DOCKER_USER_UID:?Missing DOCKER_USER_UID} DOCKER_USER_GID: ${DOCKER_USER_GID:?Missing DOCKER_USER_GID} restart: on-failure depends_on: - prepare_backend volumes: - ./:/zeppelin command: ["/bin/bash", "/zeppelin/docker/production/start-bot.sh"] build_dashboard: build: context: ./docker/production/node args: DOCKER_USER_UID: ${DOCKER_USER_UID:?Missing DOCKER_USER_UID} DOCKER_USER_GID: ${DOCKER_USER_GID:?Missing DOCKER_USER_GID} volumes: - ./:/zeppelin command: |- bash -c "cd /zeppelin/dashboard && npm ci && npm run build"