126 lines
3.7 KiB
YAML
126 lines
3.7 KiB
YAML
|
|
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
|