Files
Denso/srcs/RobotNet10/FleetManager/docker-compose.yml
2026-07-03 16:31:37 +07:00

80 lines
3.9 KiB
YAML

# =====================================================================
# RobotNet10.FleetManager - Docker Compose
#
# Yêu cầu: SQL Server, MinIO, MQTT Broker phải chạy trước (external)
#
# Cách dùng (từ thư mục FleetManager/):
# 1. cp .env.example .env → điền giá trị thực vào .env
# 2. Đặt file certificate vào thư mục certs/ (xem .env.example)
# 3. docker compose up -d
#
# Build lại image sau khi cập nhật code:
# docker compose build
# docker compose up -d
# =====================================================================
name: robotnet10-fleet
volumes:
fleet-logs:
name: fleet-app-logs
services:
fleet-manager:
build:
# Build context là srcs/RobotNet10/ để bao gồm tất cả project references
context: ..
dockerfile: FleetManager/Dockerfile
image: ${FLEET_IMAGE:-robotnet10-fleet-manager}:${FLEET_VERSION:-latest}
container_name: fleet-manager
restart: unless-stopped
ports:
- "${FLEET_HTTP_PORT:-8080}:8080" # HTTP
- "${FLEET_HTTPS_PORT:-8081}:8081" # HTTPS
environment:
ASPNETCORE_ENVIRONMENT: ${ASPNETCORE_ENVIRONMENT:-Production}
ASPNETCORE_HTTP_PORTS: "8080"
ASPNETCORE_HTTPS_PORTS: "8081"
# ── HTTPS Certificate ───────────────────────────────────────────
# Certificate được mount từ ./certs/ vào /app/certs/ (read-only)
ASPNETCORE_Kestrel__Certificates__Default__Path: /app/certs/${CERT_FILE:-fleet-manager.pfx}
ASPNETCORE_Kestrel__Certificates__Default__Password: ${CERT_PASSWORD}
# ── Connection Strings ──────────────────────────────────────────
ConnectionStrings__DefaultConnection: ${DB_DEFAULT_CONNECTION}
ConnectionStrings__MapEditorConnection: ${DB_MAP_CONNECTION}
ConnectionStrings__ScriptEngineConnection: ${DB_SCRIPT_CONNECTION}
# ── MinIO / Storage ─────────────────────────────────────────────
StorageConfig__UsingLocal: ${STORAGE_USING_LOCAL:-false}
StorageConfig__Bucket: "fleet-custom-configs"
StorageConfig__MinioConfig__Endpoint: ${MINIO_ENDPOINT}
StorageConfig__MinioConfig__User: ${MINIO_USER:-minio}
StorageConfig__MinioConfig__Password: ${MINIO_PASSWORD}
StorageConfig__MinioConfig__EnableSSL: ${MINIO_ENABLE_SSL:-false}
LayoutImage__UsingLocal: ${STORAGE_USING_LOCAL:-false}
LayoutImage__Bucket: "fleet-layout-images"
LayoutImage__MinioConfig__Endpoint: ${MINIO_ENDPOINT}
LayoutImage__MinioConfig__User: ${MINIO_USER:-minio}
LayoutImage__MinioConfig__Password: ${MINIO_PASSWORD}
LayoutImage__MinioConfig__EnableSSL: ${MINIO_ENABLE_SSL:-false}
RobotModelImage__UsingLocal: ${STORAGE_USING_LOCAL:-false}
RobotModelImage__Bucket: "robotmodel-images"
RobotModelImage__MinioConfig__Endpoint: ${MINIO_ENDPOINT}
RobotModelImage__MinioConfig__User: ${MINIO_USER:-minio}
RobotModelImage__MinioConfig__Password: ${MINIO_PASSWORD}
RobotModelImage__MinioConfig__EnableSSL: ${MINIO_ENABLE_SSL:-false}
# ── ScriptEngine ────────────────────────────────────────────────
ScriptEngine__RuntimeDllFolder: "bin/dlls"
# ── App Version ───────────────────────────────────────────────
APP_VERSION: ${FLEET_VERSION:-latest}
volumes:
- ./certs:/app/certs:ro # Certificate mount (read-only)
- fleet-logs:/app/logs