80 lines
3.9 KiB
YAML
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
|