Files
piaowu/docker-compose.yml
T

126 lines
3.7 KiB
YAML
Raw Normal View History

2026-06-10 15:38:37 +08:00
services:
piaoruo:
build:
context: /mydata/docker/piaoruo
dockerfile: /mydata/docker/piaoruo/Dockerfile
image: ruopiao:1.0
container_name: piaoruo
ports:
- "1024:1024"
environment:
- TZ=Asia/Shanghai
- SPRING_DATASOURCE_URL=jdbc:mysql://piaomysql:3306/piaoruo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=P0i8a1o9@#()
- SPRING_REDIS_HOST=piaoredis
- SPRING_REDIS_PASSWORD=Rds123!@$
volumes:
- /mydata/docker/piaoruo/ruopiao.jar:/app/ruopiao.jar # jar 包挂载
- /mydata/docker/piaoruo/www:/app/upload/www # 前端文件挂载
- /mydata/docker/piaoruo/upload:/app/upload/piao
- /mydata/docker/piaoruo/upload/json:/app/upload/json
- /mydata/docker/piaoruo/upload/logs:/app/upload/logs
networks:
- piaonet
restart: on-failure:3
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
redis:
image: redis
container_name: piaoredis
volumes:
- redis-data:/data
command: redis-server --appendonly yes --requirepass Rds123!@$ --loglevel warning
environment:
- TZ=Asia/Shanghai
networks:
- piaonet
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "-a", "Rds123!@$", "ping"]
timeout: 3s
retries: 5
mysql:
image: mysql:8.0
container_name: piaomysql
ports:
- "3306:3306" # ✅ 已支持远程访问(端口映射)
environment:
- MYSQL_ROOT_PASSWORD=P0i8a1o9@#()
- TZ=Asia/Shanghai
- MYSQL_DATABASE=piaoruo
- MYSQL_CHARSET=utf8mb4
- MYSQL_COLLATION=utf8mb4_unicode_ci
command:
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --explicit_defaults_for_timestamp=1
- --skip-name-resolve
- --bind-address=0.0.0.0 # ✅ 关键:允许远程连接
volumes:
- ./mysql/sql:/docker-entrypoint-initdb.d # 初始化脚本
- mysql-data:/var/lib/mysql # ✅ 关键:数据持久化卷
- ./mysql/conf:/etc/mysql/conf.d # 自定义配置目录
networks:
- piaonet
restart: unless-stopped
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-pP0i8a1o9@#()"]
timeout: 10s
retries: 10
start_period: 30s
nginx:
image: nginx:alpine
container_name: piaonginx
ports:
- "8089:80"
volumes:
- ./www:/usr/share/nginx/html:ro
- ./nginx.conf:/etc/nginx/nginx.conf:ro
networks:
- piaonet
restart: unless-stopped
depends_on:
- piaoruo
gitea:
image: gitea/gitea:latest
container_name: piaogitea
ports:
- "3001:3000" # Web 访问端口
- "2223:22" # SSH 端口(避免与服务器 SSH 22 端口冲突)
environment:
- TZ=Asia/Shanghai
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=piaomysql:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=root
- GITEA__database__PASSWD=P0i8a1o9@#()
volumes:
- gitea-data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
- piaonet
restart: unless-stopped
depends_on:
mysql:
condition: service_healthy
volumes:
redis-data: {} # 空对象表示使用默认配置
mysql-data: {} # 空对象表示使用默认配置
gitea-data: {} # Gitea 数据持久化
networks:
piaonet:
driver: bridge