version: "3"
services:
  uoj-db:
    image: git.m.ac/baoshuo/s2oj-db
    container_name: uoj-db
    restart: always
    volumes:
      - ./uoj_data/db/mysql:/var/lib/mysql
    environment:
      - MYSQL_DATABASE=app_uoj233
      - MYSQL_ROOT_PASSWORD=root
  
  uoj-judger:
    image: git.m.ac/baoshuo/s2oj-judger
    container_name: uoj-judger
    restart: always
    stdin_open: true
    tty: true
    cap_add:
      - SYS_PTRACE
    volumes:
      - ./uoj_data/judger/log:/opt/uoj_judger/log
      - ./uoj_data/judger/data:/opt/uoj_judger/uoj_judger/data
    environment:
      - UOJ_PROTOCOL=http
      - UOJ_HOST=uoj-web
      - JUDGER_NAME=compose_judger
      - JUDGER_PASSWORD=_judger_password_
      - SOCKET_PORT=2333
      - SOCKET_PASSWORD=_judger_socket_password_
  
  uoj-web:
    image: git.m.ac/baoshuo/s2oj-web
    container_name: uoj-web
    restart: always
    stdin_open: true
    tty: true
    cap_add:
      - SYS_PTRACE
    depends_on:
      - uoj-db
      - uoj-judger
    volumes:
      - ./uoj_data/web/data:/var/uoj_data
      - ./uoj_data/web/storage:/opt/uoj/web/app/storage
    ports:
      - "80:80"
    environment:
      - UOJ_PROTOCOL=https
      - DATABASE_HOST=uoj-db
      - DATABASE_PASSWORD=root
      - JUDGER_SOCKET_PORT=2333
      - JUDGER_SOCKET_PASSWORD=_judger_socket_password_
      - SALT_0=salt_0
      - SALT_1=salt_1
      - SALT_2=salt_2
      - SALT_3=salt_3