-
Notifications
You must be signed in to change notification settings - Fork 10
backend
simplefanC edited this page May 12, 2024
·
6 revisions
下载本项目,进入到当前文件夹执行打包命令
git clone https://github.com/simplefanc/voj-deploy.git && cd voj-deploy/src/backend当前文件夹为打包voj-backend镜像的相关文件,然后打包voj-backend(SpringBoot项目)成jar包也放到当前文件夹,之后执行以下命令进行打包成镜像
docker build -t voj-backend .项目依赖于voj-redis,voj-nacos,voj-mysql等镜像成功启动,以及根据前面三个镜像的配置修改环境参数才可正常启动
docker-compose 启动
version: "3"
services:
voj-backend:
# image: registry.cn-shanghai.aliyuncs.com/simplefanc/voj_backend
image: voj-backend
container_name: voj-backend
restart: always
depends_on:
- voj-redis
- voj-mysql
- voj-nacos
volumes:
- ./voj/file:/voj/file
- ./voj/testcase:/voj/testcase
- ./voj/log:/voj/log
environment:
- TZ=Asia/Shanghai
- BACKEND_SERVER_PORT=6688
- NACOS_URL=172.20.0.4:8848
- NACOS_USERNAME=nacos # 登录 http://ip:8848/nacos 分布式配置中心与注册中心的后台的账号
- NACOS_PASSWORD=nacos # 密码
- JWT_TOKEN_SECRET=default # token加密秘钥 默认则生成32位随机密钥
- JWT_TOKEN_EXPIRE=86400 # token过期时间默认为24小时 86400s
- JWT_TOKEN_FRESH_EXPIRE=43200 # token默认12小时可自动刷新
- JUDGE_TOKEN=default # 调用判题服务器的token 默认则生成32位随机密钥
- MYSQL_HOST=172.20.0.3
- MYSQL_PUBLIC_HOST=172.20.0.3 # 如果判题服务是分布式,请提供当前mysql所在服务器的公网ip
- MYSQL_PORT=3306
- MYSQL_DATABASE_NAME=voj
- MYSQL_USERNAME=root
- MYSQL_ROOT_PASSWORD=voj123456
- EMAIL_SERVER_HOST=smtp.qq.com # 请使用邮件服务的域名或ip
- EMAIL_SERVER_PORT=465 # 请使用邮件服务的端口号
- EMAIL_USERNAME=your_email_username # 请使用对应邮箱账号
- EMAIL_PASSWORD=your_email_password # 请使用对应邮箱密码
- REDIS_HOST=172.20.0.2
- REDIS_PORT=6379
- OPEN_REMOTE_JUDGE=true # 是否开启对hdu和codeforces的虚拟判题
ports:
- 6688:6688
networks:
voj-network:
ipv4_address: 172.20.0.5
voj-redis:
image: redis:5.0.9-alpine
container_name: voj-redis
restart: always
volumes:
- ./redis/data:/data
networks:
voj-network:
ipv4_address: 172.20.0.2
ports:
- 6379:6379
command: redis-server --appendonly yes
voj-mysql:
image: mysql:5.7
container_name: voj-mysql
restart: always
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/log:/var/log/mysql
- ./mysql/conf:/etc/mysql
environment:
- MYSQL_ROOT_PASSWORD=voj123456
- TZ=Asia/Shanghai
ports:
- 3306:3306
networks:
voj-network:
ipv4_address: 172.20.0.3
voj-nacos:
image: nacos/nacos-server:1.4.2
container_name: voj-nacos
restart: always
depends_on:
- voj-mysql
environment:
- JVM_XMX=384m
- JVM_XMS=384m
- JVM_XMN=192m
- MODE=standalone
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=172.20.0.3
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=voj123456 # 与上面数据库密码一致
- MYSQL_SERVICE_DB_NAME=nacos_config
- NACOS_AUTH_ENABLE=true # 开启鉴权
ports:
- 8848:8848
networks:
voj-network:
ipv4_address: 172.20.0.4
networks:
voj-network:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16