Add docker-compose.yml for deploying upaas (closes #223)
Check / check (pull_request) Skipped
Check / check (pull_request) Skipped
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, and PORT is pinned to 8080 so .env cannot move upaas off the port mapping and the healthcheck, which uses the runtime image's busybox wget. 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
This commit is contained in:
@@ -32,6 +32,12 @@ const (
|
||||
filePermissions = 0o600
|
||||
)
|
||||
|
||||
// errHostDataDirNotAbsolute is returned when UPAAS_HOST_DATA_DIR is set to a
|
||||
// relative path, which the Docker daemon cannot resolve for app bind mounts.
|
||||
var errHostDataDirNotAbsolute = errors.New(
|
||||
"UPAAS_HOST_DATA_DIR must be an absolute path",
|
||||
)
|
||||
|
||||
// Params contains dependencies for Config.
|
||||
type Params struct {
|
||||
fx.In
|
||||
@@ -124,6 +130,10 @@ func buildConfig(log *slog.Logger, params *Params) (*Config, error) {
|
||||
dataDir := viper.GetString("DATA_DIR")
|
||||
hostDataDir := viper.GetString("HOST_DATA_DIR")
|
||||
|
||||
if hostDataDir != "" && !filepath.IsAbs(hostDataDir) {
|
||||
return nil, fmt.Errorf("%w, got %q", errHostDataDirNotAbsolute, hostDataDir)
|
||||
}
|
||||
|
||||
if hostDataDir == "" {
|
||||
hostDataDir = dataDir
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user