Files
cloudnest/docker-compose.infra.yml
T

100 lines
3.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CloudNest 基础设施 Docker Compose
# CloudNest Infrastructure Docker Compose
# 包含 MySQL / Redis / MinIO 三个基础设施服务
# Contains MySQL / Redis / MinIO infrastructure services
# 启动方式 / Startup:
# docker compose -f docker-compose.infra.yml up -d
# 停止方式 / Stop:
# docker compose -f docker-compose.infra.yml down
# 查看日志 / View logs:
# docker compose -f docker-compose.infra.yml logs -f
# 环境变量说明 / Environment variables:
# DB_HOST - MySQL 主机(默认:容器内主机名 mysql)
# DB_PORT - MySQL 端口(默认:3306
# DB_USER - MySQL 用户(默认:root
# DB_PASSWORD - MySQL 密码(默认:sun900120
# DB_NAME - 数据库名(默认:cloudnest
# REDIS_PORT - Redis 端口(默认:6379
# MINIO_PORT - MinIO API 端口(默认:9000
# MINIO_CONSOLE_PORT - MinIO 控制台端口(默认:9001)
# MINIO_ACCESS_KEY - MinIO 访问密钥(默认:minioadmin
# MINIO_SECRET_KEY - MinIO 秘密密钥(默认:minioadmin
version: "3.8"
services:
mysql:
image: mysql:8.0
container_name: cloudnest-mysql
environment:
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD:-sun900120}
MYSQL_DATABASE: ${DB_NAME:-cloudnest}
ports:
- "${DB_PORT:-3306}:3306"
volumes:
- mysql-data:/var/lib/mysql
# 可选:挂载初始化脚本目录 / Optional: mount init scripts
# - ./scripts/mysql/init:/docker-entrypoint-initdb.d
networks:
- cloudnest-network
restart: unless-stopped
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-p${DB_PASSWORD:-sun900120}"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
command: --default-authentication-plugin=caching_sha2_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
redis:
image: redis:7-alpine
container_name: cloudnest-redis
ports:
- "${REDIS_PORT:-6379}:6379"
networks:
- cloudnest-network
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
# 可选:挂载 Redis 配置文件 / Optional: mount redis config
# volumes:
# - ./configs/redis.conf:/usr/local/etc/redis/redis.conf
# command: redis-server /usr/local/etc/redis/redis.conf
minio:
image: minio/minio:latest
container_name: cloudnest-minio
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: ${MINIO_ACCESS_KEY:-minioadmin}
MINIO_ROOT_PASSWORD: ${MINIO_SECRET_KEY:-minioadmin}
ports:
- "${MINIO_PORT:-9000}:9000"
- "${MINIO_CONSOLE_PORT:-9001}:9001"
volumes:
- minio-data:/data
networks:
- cloudnest-network
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
volumes:
mysql-data:
name: cloudnest-mysql-data
minio-data:
name: cloudnest-minio-data
networks:
cloudnest-network:
name: cloudnest-network
driver: bridge