fix: build the azkaban bundle as UID 1000 #84
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "docs/azkaban-env-alignment"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Dockerfile.azkabangives coding agents run in azkaban the tools thissite needs. #83 landed an earlier revision of it, without the changes
its review asked for: the bundle installed as root, and global npm
packages went to
/usr/local/npm-global, which the agent's Bashsandbox cannot write, so the Setup command's
npm install -g terserfailed inside the sandbox. This pull request brings the reviewed
revision.
It also aligns CONTRIBUTING.md with how azkaban reads settings today.
The guide said to copy azkaban's
env.claude.exampleto.env.claudeat the repository root for personal mounts and settings; azkaban now
reads launcher settings from an identity's files under
~/.azkaban/identities/, and a project.env.claudethat holds anAZKABAN_name stops the launch, so a contributor following the guidecould not launch.
Refs #83
What changed
Before, the image installed the bundle as root and put npm globals
where the sandboxed agent could not install. Now the bundle installs as
UID 1000, and npm globals, terser included, live in the client user's
~/.local, so the Setup command runs inside the sandbox.Before, CONTRIBUTING.md sent launcher settings to a project
.env.claude. Now it sends them to the identity'senv.claude,env.codex, orenv.opencode, and keeps the project.env.claudeforordinary container variables. The section also gets the reviewed
wording: bump notes for the Ruby and Node images live in the
Dockerfile's comments, and a
Gemfilechange is said to rebuild thebundle without a new approval.
The ignore files drop the "Claude jail" headings and the unused
.ai/rule;
.env.claudestays ignored by.gitignore's.env.*rule and by.dockerignore.How to verify
repository.
master:git switch --detach origin/master,claude ., approvethe file, then in the session
! npm install -g terserfails with apermission error on
/usr/local/npm-globalwhen run by the agentthrough its sandboxed Bash.
git switch --detach origin/docs/azkaban-env-alignment,claude ., approve the changed file, then in the session:! ruby -v && node -v && which terser && echo $NPM_CONFIG_PREFIXprints
ruby 4.0.7…,v24.x,/home/claude/.local/bin/terser,and
/home/claude/.local;! bundle install && npm install -g terserends without error;! make build && .agents/hooks/shellcheck.sh repobuilds_site/and prints
shell check: … files clean;npm install -g terser: it succeeds insideits sandbox.
git switch masterafterwards.Checks run:
.agents/hooks/shellcheck.sh repoon each commit, clean;git check-ignore -v .env.claudeprints.gitignore:28:.env.*. Notyet run: steps 2 and 3, which need azkaban on the host; this session
has no container engine.
Considerations
$HOMEin the Dockerfile'sCOPYandENVlines expands from theclient image's
ENV HOME, which azkaban's client stage sets; step 3'secho $NPM_CONFIG_PREFIXconfirms it.