sol-cloud/docker/docker-compose.yml

259 lines
No EOL
6.9 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.

networks:
cloud-app:
driver: bridge
services:
cloud-app-nginx:
image: nginx:alpine
container_name: cloud-app-nginx
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./config/nginx/nginx.conf:/etc/nginx/nginx.conf
networks:
- cloud-app
depends_on:
- cloud-client
- cloud-server-gateway
cloud-server-gateway:
restart: unless-stopped
build:
context: ../cloud
dockerfile: 9527.gateway.Dockerfile
ports:
- "9527:9527"
networks:
- cloud-app
environment:
NACOS_HOST: cloud-app-nacos
NACOS_PORT: 8848
NACOS_USER: ${NACOS_USER}
NACOS_PASSWORD: ${NACOS_PASSWORD}
REDIS_HOST: cloud-app-redis
REDIS_PORT: 6379
REDIS_PASSWORD: ${REDIS_PASSWORD}
depends_on:
- cloud-app-nacos
- cloud-app-redis
cloud-server-web-system:
restart: unless-stopped
build:
context: ../cloud
dockerfile: 8081.web.system.Dockerfile
ports:
- "8081:8081"
environment:
SYSTEM_TITLE_NAME: ${SYSTEM_TITLE_NAME}
SYSTEM_CAPTCHA_MAX: ${SYSTEM_CAPTCHA_MAX}
SYSTEM_CAPTCHA_LENGTH: ${SYSTEM_CAPTCHA_LENGTH}
POSTGRES_HOST: cloud-app-postgres
POSTGRES_PORT: 5432
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
NACOS_HOST: cloud-app-nacos
NACOS_PORT: 8848
NACOS_USER: ${NACOS_USER}
NACOS_PASSWORD: ${NACOS_PASSWORD}
REDIS_HOST: cloud-app-redis
REDIS_PORT: 6379
REDIS_PASSWORD: ${REDIS_PASSWORD}
SEATA_SERVER_NAME: cloud-app-seata
SEATA_NACOS_HOST: cloud-app-nacos
SEATA_NACOS_PORT: 8848
SEATA_NACOS_USERNAME: ${NACOS_USER}
SEATA_NACOS_PASSWORD: ${NACOS_PASSWORD}
ENABLE_SWAGGER: false
networks:
- cloud-app
depends_on:
- cloud-app-nacos
- cloud-app-redis
- cloud-app-seata
- cloud-app-postgres
cloud-server-web-file:
restart: unless-stopped
build:
context: ../cloud
dockerfile: 8082.web.file.Dockerfile
ports:
- "8082:8082"
environment:
POSTGRES_HOST: cloud-app-postgres
POSTGRES_PORT: 5432
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
NACOS_HOST: cloud-app-nacos
NACOS_PORT: 8848
NACOS_USER: ${NACOS_USER}
NACOS_PASSWORD: ${NACOS_PASSWORD}
REDIS_HOST: cloud-app-redis
REDIS_PORT: 6379
REDIS_PASSWORD: ${REDIS_PASSWORD}
SEATA_SERVER_NAME: cloud-app-seata
SEATA_NACOS_HOST: cloud-app-nacos
SEATA_NACOS_PORT: 8848
SEATA_NACOS_USERNAME: ${NACOS_USER}
SEATA_NACOS_PASSWORD: ${NACOS_PASSWORD}
ENABLE_SWAGGER: false
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
MINIO_HOST: cloud-app-minio
MINIO_PORT: 9000
networks:
- cloud-app
depends_on:
- cloud-server-web-system
- cloud-app-minio
cloud-client:
restart: unless-stopped
build:
context: ../client
dockerfile: Dockerfile
ports:
- "3000:3000"
networks:
- cloud-app
# Nacos
cloud-app-nacos:
image: nacos/nacos-server:v2.5.1
container_name: cloud-app-nacos
restart: unless-stopped
ports:
- "8848:8848"
- "9848:9848"
- "9849:9849"
environment:
MODE: standalone
NACOS_APPLICATION_PORT: 8848
DB_SERVICE_NAME: postgresql
DB_SERVICE_HOST: cloud-app-postgres
DB_SERVICE_PORT: 5432
DB_SERVICE_DB_NAME: nacos
DB_SERVICE_USER: ${POSTGRES_USER}
DB_SERVICE_PASSWORD: ${POSTGRES_PASSWORD}
NACOS_AUTH_ENABLE: true
NACOS_AUTH_TOKEN: ${NACOS_AUTH_TOKEN}
NACOS_AUTH_IDENTITY_KEY: ${NACOS_AUTH_IDENTITY_KEY}
NACOS_AUTH_IDENTITY_VALUE: ${NACOS_AUTH_IDENTITY_SECRET}
networks:
- cloud-app
volumes:
- ./data/nacos/logs:/home/nacos/logs
- ./config/nacos/conf/application.properties:/home/nacos/conf/application.properties
- ./config/nacos/plugins/:/home/nacos/plugins/
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:8848/nacos/v1/console/namespaces?&namespaceId=" ]
interval: 10s
timeout: 5s
retries: 3
# Minio 服务
cloud-app-minio:
image: minio/minio:RELEASE.2024-11-07T00-52-20Z
container_name: cloud-app-minio
restart: unless-stopped
command:
- server
- /data
- --console-address
- :9001
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
volumes:
- ./data/minio/data:/data
- ./data/minio/root/.minio:/root/.minio
networks:
- cloud-app
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ]
interval: 10s
timeout: 5s
retries: 3
# PostgreSQL 数据库服务
cloud-app-postgres:
image: postgres:17.2
container_name: cloud-app-postgres
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- ./data/postgres/data:/var/lib/postgresql/data
- ./data/postgres/log:/var/log/postgresql
- ./config/postgres/initdb:/docker-entrypoint-initdb.d
ports:
- "5432:5432"
networks:
- cloud-app
healthcheck:
test: [ "CMD", "pg_isready", "-U", "postgres" ]
interval: 10s
timeout: 5s
retries: 3
# Redis 服务
cloud-app-redis:
image: redis:7.4.2
container_name: cloud-app-redis
restart: unless-stopped
environment:
REDIS_PASSWORD: ${REDIS_PASSWORD}
command:
- /bin/sh
- -c
- redis-server --requirepass $$REDIS_PASSWORD
volumes:
- ./data/redis/data:/data
ports:
- "6379:6379"
networks:
- cloud-app
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 10s
timeout: 5s
retries: 3
# Seata 服务
cloud-app-seata:
image: seataio/seata-server:1.8.0.2
container_name: cloud-app-seata
restart: unless-stopped
ports:
- "8091:8091"
- "7091:7091"
environment:
SEATA_IP: #如果是调试模式,请将本机 IP 填写到下面否则nacos无法给出正确的调用地址.
SEATA_SERVER_PORT: 7091
SEATA_SERVER_NAME: cloud-app-seata
SEATA_NACOS_HOST: cloud-app-nacos
SEATA_NACOS_PORT: 8848
SEATA_NACOS_USERNAME: ${NACOS_USER}
SEATA_NACOS_PASSWORD: ${NACOS_PASSWORD}
SEATA_POSTGRES_HOST: cloud-app-postgres
SEATA_POSTGRES_PORT: 5432
SEATA_POSTGRES_DB: seata
SEATA_POSTGRES_USER: ${POSTGRES_USER}
SEATA_POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
SEATA_SECRET_KEY: ${SEATA_SECRET_KEY}
SEATA_USER: ${SEATA_USER}
SEATA_PASSWORD: ${SEATA_PASSWORD}
volumes:
- ./config/seata/resources/application.yml:/seata-server/resources/application.yml
networks:
- cloud-app
depends_on:
- cloud-app-postgres
- cloud-app-nacos