tullictl is not built into the Docker image #25

Closed
opened 2026-07-13 16:43:48 +02:00 by qwc · 0 comments
Owner

Bug

tullictl is documented as the way to inspect a running instance (e.g. docker compose exec tulli tullictl repos, see #18), but it does not exist in the shipped image. Confirmed on a docker-compose testing instance: tullictl is not on PATH / not present.

Cause

The Dockerfile only builds and copies the server binary — cmd/tullictl is never compiled or copied:

# build stage
RUN CGO_ENABLED=0 go build -mod=vendor -o /out/tulli ./cmd/tulli   # only cmd/tulli
# runtime stage
COPY --from=build /out/tulli /usr/local/bin/tulli                   # only tulli

Fix

  • Build cmd/tullictl in the build stage (go build … -o /out/tullictl ./cmd/tullictl).
  • COPY --from=build /out/tullictl /usr/local/bin/tullictl into the runtime stage.
  • Verify docker compose exec tulli tullictl repos works against the compose stack (it can talk to the web API over TULLI_URL with the bootstrap admin token).
  • Blocks the compose-one-liner ergonomics described in #18.
  • Blocks exercising the CLI half of #24 (repo removal via tullictl repo rm) inside compose.

Labels: Kind/Bug, packaging.

## Bug `tullictl` is documented as *the* way to inspect a running instance (e.g. `docker compose exec tulli tullictl repos`, see #18), but it **does not exist in the shipped image**. Confirmed on a docker-compose testing instance: `tullictl` is not on `PATH` / not present. ## Cause The Dockerfile only builds and copies the server binary — `cmd/tullictl` is never compiled or copied: ```dockerfile # build stage RUN CGO_ENABLED=0 go build -mod=vendor -o /out/tulli ./cmd/tulli # only cmd/tulli # runtime stage COPY --from=build /out/tulli /usr/local/bin/tulli # only tulli ``` ## Fix - Build `cmd/tullictl` in the build stage (`go build … -o /out/tullictl ./cmd/tullictl`). - `COPY --from=build /out/tullictl /usr/local/bin/tullictl` into the runtime stage. - Verify `docker compose exec tulli tullictl repos` works against the compose stack (it can talk to the web API over `TULLI_URL` with the bootstrap admin token). ## Impact / related - Blocks the compose-one-liner ergonomics described in **#18**. - Blocks exercising the CLI half of **#24** (repo removal via `tullictl repo rm`) inside compose. Labels: `Kind/Bug`, `packaging`.
qwc closed this issue 2026-07-15 21:51:24 +02:00
Sign in to join this conversation.
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
qwc-open/tulli#25
No description provided.