version: '3'
volumes:
  mysql-data: {}
  vscode-remote: {}
  vscode-server: {}
  jetbrains-data: {}
services:
  nginx:
    build:
      context: ./nginx
      args:
        DOCKER_DEV_WEB_PORT: ${DOCKER_DEV_WEB_PORT:?Missing DOCKER_DEV_WEB_PORT}
        API_PORT: ${API_PORT:?Missing API_PORT}
    ports:
      - "${DOCKER_DEV_WEB_PORT:?Missing DOCKER_DEV_WEB_PORT}:443"
    volumes:
      - ../../:/zeppelin

  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: ${DOCKER_DEV_MYSQL_ROOT_PASSWORD?:Missing DOCKER_DEV_MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: zeppelin
      MYSQL_USER: zeppelin
      MYSQL_PASSWORD: ${DOCKER_DEV_MYSQL_PASSWORD?:Missing DOCKER_DEV_MYSQL_PASSWORD}
    ports:
      - ${DOCKER_DEV_MYSQL_PORT:?Missing DOCKER_DEV_MYSQL_PORT}:3306
    volumes:
      - mysql-data:/var/lib/mysql
    command: --authentication-policy=mysql_native_password

  devenv:
    build:
      context: ./devenv
      args:
        DOCKER_DEV_SSH_PASSWORD: ${DOCKER_DEV_SSH_PASSWORD:?Missing DOCKER_DEV_SSH_PASSWORD}
        DOCKER_UID: ${DOCKER_UID:?Missing DOCKER_UID}
        DOCKER_STAY_RUNNING: ${DOCKER_STAY_RUNNING}
    ports:
      - "${DOCKER_DEV_SSH_PORT:?Missing DOCKER_DEV_SSH_PORT}:22"
    volumes:
      - ../../:/home/ubuntu/zeppelin
      - ~/.ssh:/home/ubuntu/.ssh
      - vscode-remote:/home/ubuntu/.vscode-remote
      - vscode-server:/home/ubuntu/.vscode-server
      - jetbrains-data:/home/ubuntu/.cache/JetBrains