你创建了一个在线OJ(Online Judge)框架,并提供了使用Docker进行一键部署的详细配置。这个项目可以在GitHub上找到,地址是https://github.com/programming666/online-jduge。项目使用Docker Compose来定义和运行多个服务,包括PostgreSQL数据库服务、Online Judge服务器和客户端。以下是Docker Compose配置的详细内容:

services:
  postgres:
    image: postgres:15-alpine
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: onlinejudge
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data

  server:
    image: ack0/online-judge-server:latest
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgresql://postgres:postgres@postgres:5432/onlinejudge?schema=public
      - PORT=3000
      - JUDGE_IMAGE=ack0/online-judge-judge-runner:latest
      - JWT_SECRET=change-me
    env_file:
      - ./server-go/.env
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - postgres

  client:
    image: ack0/online-judge-client:latest
    ports:
      - "80:80"
    depends_on:
      - server

volumes:
  pgdata:

这个配置包括了三个服务:

  1. postgres - 用于存储数据库的PostgreSQL服务。
  2. server - 运行Online Judge服务器,配置了数据库连接、端口和JWT密钥等信息。
  3. client - 运行Online Judge客户端,映射了80端口。

此外,还定义了一个数据卷pgdata用于持久化PostgreSQL数据库的数据。

这个项目看起来是一个功能齐全的在线OJ系统,可以用于编程学习和竞赛。如果你有兴趣,可以访问GitHub地址查看更多详情和开始使用这个项目。

标签: none

评论已关闭