oak-docker-tools/template/docker-compose.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: