88 lines
1.9 KiB
YAML
88 lines
1.9 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# =======================
|
|
# MySQL 数据库
|
|
# =======================
|
|
mysql:
|
|
image: mysql:8.2
|
|
container_name: mysql_container
|
|
restart: always
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: your_root_password
|
|
MYSQL_DATABASE: your_database
|
|
MYSQL_USER: your_user
|
|
MYSQL_PASSWORD: your_password
|
|
network_mode: host
|
|
volumes:
|
|
- mysql_data:/var/lib/mysql
|
|
|
|
# =======================
|
|
# Redis 缓存
|
|
# =======================
|
|
redis:
|
|
image: redis:7.2
|
|
container_name: redis_container
|
|
restart: always
|
|
network_mode: host
|
|
volumes:
|
|
- redis_data:/data
|
|
|
|
# =======================
|
|
# MinIO 对象存储
|
|
# =======================
|
|
minio:
|
|
image: minio/minio:latest
|
|
container_name: minio_container
|
|
restart: always
|
|
environment:
|
|
MINIO_ROOT_USER: minioadmin
|
|
MINIO_ROOT_PASSWORD: minioadmin
|
|
command: server /data --console-address ":9001"
|
|
network_mode: host
|
|
volumes:
|
|
- minio_data:/data
|
|
|
|
# =======================
|
|
# MinIO 初始化
|
|
# =======================
|
|
minio-init:
|
|
image: minio/mc:latest
|
|
container_name: minio_init_container
|
|
depends_on:
|
|
- minio
|
|
network_mode: host
|
|
entrypoint: >
|
|
/bin/sh -c "
|
|
sleep 5 &&
|
|
mc alias set local http://127.0.0.1:9000 minioadmin minioadmin &&
|
|
mc mb local/my-bucket || echo 'bucket exists' &&
|
|
mc policy set public local/my-bucket
|
|
"
|
|
restart: "no"
|
|
|
|
# =======================
|
|
# Nginx 网关
|
|
# =======================
|
|
nginx:
|
|
image: nginx:latest
|
|
container_name: nginx_container
|
|
restart: always
|
|
network_mode: host
|
|
volumes:
|
|
- ./nginx/conf.d:/etc/nginx/conf.d:ro
|
|
- ./html:/usr/share/nginx/html:ro
|
|
depends_on:
|
|
- mysql
|
|
- redis
|
|
- minio
|
|
- minio-init
|
|
|
|
# =======================
|
|
# 数据卷
|
|
# =======================
|
|
volumes:
|
|
mysql_data:
|
|
redis_data:
|
|
minio_data:
|