services: starry-cloud: container_name: starry-cloud build: . restart: unless-stopped init: true ports: - "5000:5000" user: "1000:1000" pids_limit: 128 mem_limit: 32m memswap_limit: 32m cap_drop: - ALL security_opt: - no-new-privileges:true read_only: true tmpfs: - /tmp:rw,noexec,nosuid,nodev,size=64m healthcheck: test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:5000/health || exit 1"] interval: 30s timeout: 5s retries: 3 start_period: 20s logging: driver: json-file options: max-size: "10m" max-file: "3" volumes: # App settings file (create from config.example.yml): - type: bind source: ./config.yml target: /app/config.yml read_only: true # Auth secrets file — generate with: # docker compose run --rm starry-cloud gen-auth - type: bind source: ./auth.yml target: /app/auth.yml read_only: true # procfs: mount only files required for showing system stats - type: bind source: /proc/uptime target: /host/proc/uptime read_only: true - type: bind source: /proc/meminfo target: /host/proc/meminfo read_only: true - type: bind source: /proc/stat target: /host/proc/stat read_only: true - type: bind source: /proc/cpuinfo target: /host/proc/cpuinfo read_only: true - type: bind source: /proc/sys/kernel/hostname target: /host/proc/sys/kernel/hostname read_only: true # sysfs: mount only files required for showing system stats - type: bind source: /sys/class target: /host/sys/class read_only: true - type: bind source: /sys/devices target: /host/sys/devices read_only: true # hostname only - type: bind source: /etc/hostname target: /host/etc/hostname read_only: true