fix(docker): let Dokku supply the index credential #3

Merged
john merged 1 commit from fix/dokku-build-credential into dev 2026-07-27 01:37:18 +00:00
Owner

The first deploy of superclean-kernel failed at image build. The Dockerfile read the Forgejo index token only from a BuildKit secret; CI mounts one, dokku git:sync cannot. Result was a missing /run/secrets/forgejo_token and then a 401 from the package index — and the fallback re-ran the identical failing command.

Now the mounted secret wins when present, with a build arg as fallback. That is the pattern superclean-api already uses on lumeria.

Also raises HEALTHCHECK start-period 30s to 120s per the standing convention for Python backends: the entrypoint runs alembic before uvicorn binds.

No database was touched by the failed deploy — superclean_prod_db still has its 31 tables and none of the kernel's nine.

The first deploy of superclean-kernel failed at image build. The Dockerfile read the Forgejo index token only from a BuildKit secret; CI mounts one, dokku git:sync cannot. Result was a missing /run/secrets/forgejo_token and then a 401 from the package index — and the fallback re-ran the identical failing command. Now the mounted secret wins when present, with a build arg as fallback. That is the pattern superclean-api already uses on lumeria. Also raises HEALTHCHECK start-period 30s to 120s per the standing convention for Python backends: the entrypoint runs alembic before uvicorn binds. No database was touched by the failed deploy — superclean_prod_db still has its 31 tables and none of the kernel's nine.
fix(docker): let Dokku supply the index credential, and widen the health start period
Some checks failed
CI / Deploy (pull_request) Has been skipped
CI / Detect Changes (pull_request) Has been cancelled
CI / Backend (pull_request) Has been cancelled
CI / Docker Build (pull_request) Has been cancelled
85c1956c74
The Dockerfile read the Forgejo index token only from a BuildKit secret. CI mounts
one; "dokku git:sync --build" cannot. The first deploy of superclean-kernel died with
"cat: /run/secrets/forgejo_token: No such file or directory" followed by a 401 from
the package index, and the "||" fallback re-ran the identical failing command.

Now the mounted secret wins when present and a build arg is the fallback, which is the
pattern superclean-api already uses on lumeria:

  dokku docker-options:add <app> build '--build-arg UV_INDEX_HASKYTECH_PASSWORD=<token>'

Also raises HEALTHCHECK start-period from 30s to 120s, per the standing convention for
Python backends. The entrypoint runs alembic before uvicorn binds, and on a fresh
company database that is nine CREATE TABLEs plus indexes.

No database was touched by the failed deploy: superclean_prod_db still has its 31
tables and none of the kernel's nine.
john merged commit 330d48f4fe into dev 2026-07-27 01:37:18 +00:00
john deleted branch fix/dokku-build-credential 2026-07-27 01:37:19 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
haskytech/companyos-kernel!3
No description provided.