Skip to content

fix(build): write the binary to /server instead of stomping on /app#60

Merged
BK1031 merged 1 commit into
mainfrom
bk1031/dockerfile-entrypoint-fix
Jun 2, 2026
Merged

fix(build): write the binary to /server instead of stomping on /app#60
BK1031 merged 1 commit into
mainfrom
bk1031/dockerfile-entrypoint-fix

Conversation

@BK1031
Copy link
Copy Markdown
Contributor

@BK1031 BK1031 commented Jun 2, 2026

`go build -o /app` writes the output binary inside the existing `/app` directory (WORKDIR), then `COPY --from=builder /app /app` brings the directory across. The final image's `/app` is a directory, so `ENTRYPOINT ["/app"]` fails at runtime:

```
unable to start container process: error during container init:
exec: "/app": is a directory
```

This only surfaced now because k8s runs the production image directly — docker-compose dev mode uses `air` for live reload and skips the Dockerfile entrypoint entirely, so the bug hid.

Fix: build the binary to `/server` (a single file), COPY it across, point ENTRYPOINT at the file. Same in core, oauth, discord.

`go build -o /app` writes the output binary into the existing /app
directory (WORKDIR), then `COPY /app /app` brings the directory across,
so the final image's /app is a *directory*. ENTRYPOINT ["/app"] then
fails at runtime with:

  unable to start container process: error during container init:
  exec: "/app": is a directory

Build only succeeded in the first place because docker-compose ran the
service via `air` (live reload) and never exercised the production
image. Surfacing now because k8s runs the image as-is.

Switch to /server: produce a single binary file, COPY it directly,
ENTRYPOINT points at the file. Same fix in core, oauth, discord.
@BK1031 BK1031 merged commit b70a254 into main Jun 2, 2026
8 checks passed
@BK1031 BK1031 deleted the bk1031/dockerfile-entrypoint-fix branch June 2, 2026 03:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant