fix(botfights): absolute bind-mount path + data_uid for fresh installs
Two root-caused bugs found live during a fresh install on a second node (x250-beta) that never surfaced on archi-dev-box by accident of that node's prior state: - volumes.source was a bare relative "botfights-data" instead of an absolute host path, inconsistent with every other app's manifest. Resolved to /var/lib/archipelago/botfights on archi-dev-box but to /home/archipelago/botfights-data on x250-beta, which doesn't exist there. Fixed to the absolute path, matching netbird-server and every other app's convention. - data_uid was missing entirely. The container runs as internal UID 1001 (security.user), but without data_uid the orchestrator's bind-dir ownership fixup only fires via a same-owner-as-anchor fallback that assumes no-data_uid apps run as container-internal root. Root cause of a real SqliteError: unable to open database file crash-loop on startup. Fixed by adding data_uid: "1001:1001", same pattern as fedimint-clientd and barkd. Bumped catalog via generate-app-catalog.sh; cargo test -p archipelago-container manifest passes (38/38). Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
1b8eaefbd0
commit
5745db51ae
@ -19,6 +19,15 @@ app:
|
||||
secret_env:
|
||||
- key: JWT_SECRET
|
||||
secret_file: botfights-jwt-secret
|
||||
# Matches security.user below. Was missing entirely (found live during a
|
||||
# fresh install on a second node): without it, the orchestrator's bind-dir
|
||||
# ownership fixup only fires via a same-owner-as-anchor fallback that
|
||||
# assumes an app with no data_uid runs as container-internal root — but
|
||||
# this app runs as 1001, not root, so that fallback doesn't apply either.
|
||||
# The bind mount ended up unwritable, crash-looping the container on
|
||||
# startup (SqliteError: unable to open database file). Same pattern as
|
||||
# apps/fedimint-clientd/manifest.yml and apps/barkd/manifest.yml.
|
||||
data_uid: "1001:1001"
|
||||
|
||||
dependencies:
|
||||
- storage: 500Mi
|
||||
@ -43,8 +52,17 @@ app:
|
||||
protocol: tcp # Web UI + API
|
||||
|
||||
volumes:
|
||||
# A bare relative source (was "botfights-data", no leading slash) is
|
||||
# inconsistent with every other app's manifest, which uses an absolute
|
||||
# host path — found live during a fresh install on a second node:
|
||||
# resolved to /var/lib/archipelago/botfights on archi-dev-box (by
|
||||
# accident of that node's specific state) but /home/archipelago/
|
||||
# botfights-data on a different node, which doesn't exist there,
|
||||
# crash-looping the container on a real SqliteError: unable to open
|
||||
# database file. Absolute path removes the ambiguity entirely, matching
|
||||
# apps/netbird-server/manifest.yml and every other app's convention.
|
||||
- type: bind
|
||||
source: botfights-data
|
||||
source: /var/lib/archipelago/botfights
|
||||
target: /app/server/data
|
||||
- type: tmpfs
|
||||
target: /tmp
|
||||
|
||||
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user