services: asxpio: # Image will be dynamically updated during deployment # Format: registry.example.com/user/asxpio:sha_tag build: . image: asxpio:latest container_name: asxpio restart: unless-stopped env_file: .env networks: - traefik - storage labels: - "traefik.enable=true" - "traefik.http.routers.asxpio.rule=Host(`asxp.io`) || Host(`www.asxp.io`)" - "traefik.http.routers.asxpio.entrypoints=websecure" - "traefik.http.routers.asxpio.tls=true" - "traefik.http.routers.asxpio.tls.certresolver=letsencrypt" - "traefik.http.routers.asxpio.service=asxpio" - "traefik.http.services.asxpio.loadbalancer.server.port=3000" # Reachability worker for datacenterbingo's status page (bin/monitor). # Same image; the deploy's sed sets both image lines. asxpio-monitor: image: asxpio:latest container_name: asxpio-monitor restart: unless-stopped env_file: .env command: ["ruby", "bin/monitor"] networks: - storage # postgres; not internal, so probes reach the internet mem_limit: 256m healthcheck: # The worker touches its heartbeat after every round (60 s). test: ["CMD", "ruby", "-e", "exit(Time.now - File.mtime('/tmp/monitor.heartbeat') < 300 ? 0 : 1)"] interval: 60s timeout: 10s start_period: 120s retries: 3 networks: traefik: external: true storage: external: true