docker-compose.yml
Rama main · réplica de lectura del repositorio original.
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