No Dockerfile to build service #9

Closed
opened 2026-07-01 16:57:34 +00:00 by frx · 2 comments
Owner

Account Taskfile, add build_docker there.
It should achieve the following:

  • Dockerfile with build stage. Use distroless
  • Add health probing for the web app
  • Add task step that will build an image

No need to push docker image, leave it local
Do not forget about config file

Account Taskfile, add build_docker there. It should achieve the following: - Dockerfile with build stage. Use distroless - Add health probing for the web app - Add task step that will build an image --- No need to push docker image, leave it local Do not forget about config file
Collaborator

Issue #9 Resolved — Merged

Root cause: The service had no containerization artifacts — no Dockerfile, no image build task, and no health probing infrastructure to support container orchestration.

Key changes:

  • Added Dockerfile — multi-stage build (golang:1.26-alpine builder → distroless/static-debian12 final), compiles both kuriweb and a healthcheck binary, bakes default config.json, sets HEALTHCHECK + nonroot user
  • Added .dockerignore — excludes .git, bin/, *.sqlite, docs, IDE dirs
  • Added cmd/healthcheck/main.go — static Go binary probing /healthz (exit 0 on 2xx, 1 on error)
  • Added GET /healthz endpoint in cmd/kuriweb/http.go
  • Added build_docker task in Taskfile.yml (builds only, no push, passes VERSION/COMMIT/BUILD_TIME args, tags kuriousweb)

Result: Service is now containerizable via a single task build_docker command, producing a minimal distroless image with health probing and a baked-in default config — fully meeting all four issue requirements. Approved by @frx.


## Issue #9 Resolved — Merged **Root cause:** The service had no containerization artifacts — no Dockerfile, no image build task, and no health probing infrastructure to support container orchestration. **Key changes:** - Added `Dockerfile` — multi-stage build (`golang:1.26-alpine` builder → `distroless/static-debian12` final), compiles both `kuriweb` and a `healthcheck` binary, bakes default `config.json`, sets `HEALTHCHECK` + `nonroot` user - Added `.dockerignore` — excludes `.git`, `bin/`, `*.sqlite`, docs, IDE dirs - Added `cmd/healthcheck/main.go` — static Go binary probing `/healthz` (exit 0 on 2xx, 1 on error) - Added `GET /healthz` endpoint in `cmd/kuriweb/http.go` - Added `build_docker` task in `Taskfile.yml` (builds only, no push, passes `VERSION`/`COMMIT`/`BUILD_TIME` args, tags `kuriousweb`) **Result:** Service is now containerizable via a single `task build_docker` command, producing a minimal distroless image with health probing and a baked-in default config — fully meeting all four issue requirements. Approved by @frx. --- - PR: [#10](https://git.loyso.ru/frx/kurious/pulls/10) (merged by @hermes at 2026-07-01T17:22:14Z) - Merge commit: `e09a14c` - Changes: 5 files (+124/−0) - Issue: #9
Collaborator

Issue #9 Resolved - Merged

What was done

Added Dockerfile with a proper build stage for the kurious service, addressing all requirements from the original issue:

  • Dockerfile with distroless base image — multi-stage build that compiles the Go binary and copies it into a distroless container for minimal attack surface.
  • Health probing for the web app — health check endpoint configured in the Dockerfile for container orchestration.
  • Taskfile build_docker step — added a build_docker task that builds the Docker image locally (no push, as requested).
  • Config file handling — ensured the config file is properly available to the container.

Changes

  • 5 files changed (+124 lines)
  • Merge commit: e09a14c

## Issue #9 Resolved - Merged ### What was done Added Dockerfile with a proper build stage for the kurious service, addressing all requirements from the original issue: - **Dockerfile with distroless base image** — multi-stage build that compiles the Go binary and copies it into a distroless container for minimal attack surface. - **Health probing for the web app** — health check endpoint configured in the Dockerfile for container orchestration. - **Taskfile build_docker step** — added a `build_docker` task that builds the Docker image locally (no push, as requested). - **Config file handling** — ensured the config file is properly available to the container. ### Changes - 5 files changed (+124 lines) - Merge commit: `e09a14c` --- - PR: #10 (merged by @hermes at 2026-07-01T17:22:14Z) - Issue: #9
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: frx/kurious#9
No description provided.