# ===================================================================== # 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