Skip to content

Commit be4550d

Browse files
turegjorupclaude
andcommitted
e2e: chown bind-mount dirs to UID 1042 before stack up
The previous run got past install-secrets and migrations but failed at JWT keypair generation: container writes as `deploy` (UID 1042) per the README's deploy-host UID/GID contract, but CI runners aren't an operator's 1042-group host, so the bind-mounted ./jwt is owned by the runner user and `chmod` semantics give EACCES. `sudo chown -R 1042:1042 jwt media backup` after install-secrets and before `task up`. Mirrors what an operator's `useradd -u 1042 deploy` does on a Linux host — just at workflow scope rather than as a host boot step. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 9cb7315 commit be4550d

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

.github/workflows/e2e.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,15 @@ jobs:
7878
- name: install-secrets (would be `task install`'s first step)
7979
run: ./scripts/install-secrets.sh
8080

81+
- name: Pre-create bind-mount dirs with container-writable perms
82+
# The os2display container writes JWT keys as UID 1042 (`deploy`)
83+
# per README's deploy-host UID/GID contract, and uploads to
84+
# ./media as the same user. CI runners aren't the operator's
85+
# 1042-group host, so chown the bind-mount sources to match.
86+
run: |
87+
mkdir -p jwt media backup
88+
sudo chown -R 1042:1042 jwt media backup
89+
8190
- name: task up
8291
# `task up` uses `compose up -d --wait`, so this blocks until every
8392
# service's healthcheck passes. Migrations on the next step can

0 commit comments

Comments
 (0)