Check / check (pull_request) Successful in 3m19s
The compose file builds the image from this repo, mounts the Docker socket and HOST_DATA_DIR (passed to upaas as UPAAS_HOST_DATA_DIR), reads settings from .env, and restarts unless stopped. The port is published on 127.0.0.1 only, for a TLS-terminating proxy in front. PORT and UPAAS_DATA_DIR are pinned so .env cannot move upaas off the port mapping, the healthcheck (busybox wget) or the data mount. upaas now refuses to start when UPAAS_HOST_DATA_DIR is set to a relative path; when unset it still falls back to the data directory. The README's plain-HTTP Compose example becomes a short deploy section that points at the file. .env is added to .dockerignore. Model: opus-5-5
31 lines
1.3 KiB
YAML
31 lines
1.3 KiB
YAML
# Runs upaas. Put settings in .env next to this file; see "Deploying with
|
|
# Docker Compose" in README.md.
|
|
services:
|
|
upaas:
|
|
build: .
|
|
restart: unless-stopped
|
|
# Every line of .env is passed to upaas as an environment variable.
|
|
env_file: .env
|
|
environment:
|
|
# Overrides any PORT in .env, so upaas listens where the port mapping
|
|
# and healthcheck below expect it.
|
|
PORT: "8080"
|
|
# Overrides any UPAAS_DATA_DIR in .env, so the database stays on the
|
|
# HOST_DATA_DIR mount below instead of inside the container.
|
|
UPAAS_DATA_DIR: /var/lib/upaas
|
|
# The Docker daemon resolves app bind mounts on the host, so upaas must
|
|
# know the host path of its data directory.
|
|
UPAAS_HOST_DATA_DIR: ${HOST_DATA_DIR:?set HOST_DATA_DIR in .env to an absolute host path}
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- ${HOST_DATA_DIR:?set HOST_DATA_DIR in .env to an absolute host path}:/var/lib/upaas
|
|
# Loopback only, for a TLS-terminating reverse proxy in front. Leave
|
|
# UPAAS_PLAINTEXT_HTTP unset behind that proxy.
|
|
ports:
|
|
- "127.0.0.1:8080:8080"
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1:8080/health"]
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|