Files
piaowu/docker-compose.yml
T
2026-06-12 11:48:17 +08:00

126 lines
3.7 KiB
YAML

services:
web:
build:
context: /mydata/docker/piaowu
dockerfile: /mydata/docker/piaowu/Dockerfile
image: piaowu:1.0
container_name: piaowu
ports:
- "1024:1024"
environment:
- TZ=Asia/Shanghai
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/piaowu?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=P2i0a2o6w@u
- SPRING_REDIS_HOST=piaowuredis
- SPRING_REDIS_PASSWORD=Rds234!@$
volumes:
- /mydata/docker/piaowu/piaowu.jar:/app/piaowu.jar # jar 包挂载
- /mydata/docker/piaowu/www:/app/upload/www # 前端文件挂载
- /mydata/docker/piaowu/upload:/app/upload/piaowu
- /mydata/docker/piaowu/upload/json:/app/upload/json
- /mydata/docker/piaowu/upload/logs:/app/upload/logs
networks:
- piaowunet
restart: on-failure:3
depends_on:
mysql:
condition: service_healthy
redis:
condition: service_healthy
redis:
image: redis
container_name: piaowuredis
volumes:
- redis-data-piaowu:/data/redis
command: redis-server --appendonly yes --requirepass Rds234!@$ --loglevel warning
environment:
- TZ=Asia/Shanghai
networks:
- piaowunet
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "-a", "Rds234!@$", "ping"]
timeout: 3s
retries: 5
mysql:
image: mysql:8.0
container_name: piaowumysql
ports:
- "3309:3306" # ✅ 已支持远程访问(端口映射)
environment:
- MYSQL_ROOT_PASSWORD=P2i0a2o6w@u
- TZ=Asia/Shanghai
- MYSQL_DATABASE=piaowu
- 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-piaowu:/var/lib/mysql # ✅ 关键:数据持久化卷
- ./mysql/conf:/etc/mysql/conf.d # 自定义配置目录
networks:
- piaowunet
restart: unless-stopped
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-pP2i0a2o6w@u"]
timeout: 10s
retries: 10
start_period: 30s
nginx:
image: nginx:alpine
container_name: piaowunginx
ports:
- "8089:80"
volumes:
- ./www:/usr/share/nginx/html:ro
- ./nginx.conf:/etc/nginx/nginx.conf:ro
networks:
- piaowunet
restart: unless-stopped
depends_on:
- web
gitea:
image: gitea/gitea
container_name: piaowugitea
ports:
- "3000:3000" # Web 访问端口
- "222:22" # SSH 端口(避免与服务器 SSH 22 端口冲突)
environment:
- TZ=Asia/Shanghai
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=mysql:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=root
- GITEA__database__PASSWD=P0i8a1o9@#()
volumes:
- gitea-data-piaowu:/data/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
networks:
- piaowunet
restart: unless-stopped
depends_on:
mysql:
condition: service_healthy
volumes:
redis-data-piaowu: {} # 空对象表示使用默认配置
mysql-data-piaowu: {} # 空对象表示使用默认配置
gitea-data-piaowu: {} # Gitea 数据持久化
networks:
piaowunet:
driver: bridge