4c9eacccb7
The landing service had no networks: key, so it joined the auto 'default'
network while proxy was only on spaceshell-network + webproxy — they shared no
network, so proxy_pass to 'landing' couldn't resolve. With a static
upstream{ server landing:80 } nginx fails to boot on an unresolvable name and
restart-loops, so the proxy flapped (page intermittently up/down). Fixes:
- landing now joins spaceshell-network (shared with proxy).
- proxy.conf resolves 'landing' at request time via Docker DNS (127.0.0.11)
using a variable proxy_pass, so nginx starts even if landing is briefly down.
nginx -t passes.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
35 lines
1.0 KiB
YAML
35 lines
1.0 KiB
YAML
# spacesh prod — front nginx proxies to the landing container and serves the DMG.
|
|
# Deployed by .gitea/workflows/build.yaml (image + this file); the DMG is uploaded
|
|
# separately via `make deploy-dmg` (Tauri can't cross-compile a macOS bundle in CI).
|
|
services:
|
|
landing:
|
|
# LANDING_IMAGE is written to .env by the CI deploy job (exact registry path + tag).
|
|
image: ${LANDING_IMAGE:-git.realmanual.ru/spacesh/spacesh-landing:latest}
|
|
restart: unless-stopped
|
|
expose:
|
|
- "80"
|
|
networks:
|
|
# Must share a network with `proxy`, else proxy_pass to `landing` can't resolve.
|
|
- spaceshell-network
|
|
|
|
proxy:
|
|
image: nginx:1.27-alpine
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- landing
|
|
expose:
|
|
- "80"
|
|
volumes:
|
|
- ./proxy.conf:/etc/nginx/conf.d/default.conf:ro
|
|
- ./download:/srv/download:ro
|
|
networks:
|
|
spaceshell-network:
|
|
webproxy:
|
|
ipv4_address: 172.18.0.28
|
|
|
|
networks:
|
|
spaceshell-network:
|
|
driver: bridge
|
|
webproxy:
|
|
name: webproxy
|
|
external: true |