This repository has been archived on 2026-01-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Game/Public/Publish/docker-compose.yml

81 lines
1.9 KiB
YAML

version: '3.8'
services:
# ETCD 分布式键值存储
etcd:
image: quay.io/coreos/etcd:v3.5.4
container_name: etcd
ports:
- "2379:2379" # 客户端连接端口
- "2380:2380" # 节点通信端口
environment:
ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
ETCD_ADVERTISE_CLIENT_URLS: "http://etcd:2379"
ETCD_LISTEN_PEER_URLS: "http://0.0.0.0:2380"
ETCD_INITIAL_ADVERTISE_PEER_URLS: "http://etcd:2380"
ETCD_NAME: "etcd-single"
ETCD_INITIAL_CLUSTER: "etcd-single=http://etcd:2380"
ETCD_INITIAL_CLUSTER_TOKEN: "etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE: "new"
volumes:
- etcd-data:/etcd-data
networks:
- app-network
# Redis 缓存数据库
redis:
image: redis:7.0-alpine
container_name: redis
ports:
- "6379:6379"
volumes:
- redis-data:/data
networks:
- app-network
command: redis-server --save 60 1 --loglevel warning
# MySQL 数据库
mysql:
image: mysql:8.0
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: rootpassword # 请更改为强密码
MYSQL_DATABASE: app_db
MYSQL_USER: app_user
MYSQL_PASSWORD: userpassword # 请更改为强密码
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
- ./mysql-init:/docker-entrypoint-initdb.d # 初始化SQL脚本目录
networks:
- app-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 5s
timeout: 10s
retries: 5
# ETCD 可视化界面 (Web UI)
etcd-viewer:
image: deltaprojects/etcdkeeper:latest
container_name: etcd-viewer
ports:
- "8080:8080"
environment:
ETCD_HOST: etcd
ETCD_PORT: 2379
networks:
- app-network
depends_on:
- etcd
# 数据卷声明
volumes:
etcd-data:
redis-data:
mysql-data:
# 网络配置
networks:
app-network:
driver: bridge