自己写的OJ框架:Docker一键部署在线OJ系统
你创建了一个在线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:这个配置包括了三个服务:
postgres- 用于存储数据库的PostgreSQL服务。server- 运行Online Judge服务器,配置了数据库连接、端口和JWT密钥等信息。client- 运行Online Judge客户端,映射了80端口。
此外,还定义了一个数据卷pgdata用于持久化PostgreSQL数据库的数据。
这个项目看起来是一个功能齐全的在线OJ系统,可以用于编程学习和竞赛。如果你有兴趣,可以访问GitHub地址查看更多详情和开始使用这个项目。
评论已关闭