Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,16 @@ FROM alpine:3.21

# Install only the runtime libraries (not dev headers).
# vips: image processing runtime (libvips)
# librsvg: SVG rasterization backend for libvips — without it, libvips falls
# back to a much slower SVG path. Resizing a single Wikimedia logo to
# all five sizes takes ~30s without librsvg vs ~100ms with it, which
# was tripping kamal-proxy's request timeout.
# ca-certificates: for HTTPS calls to GitHub API and LLM providers
# tzdata: timezone data for proper timestamps
# sqlite: CLI for ad-hoc inspection / cache cleanup via `kamal app exec`
# (the binary uses go-sqlite3, which doesn't need the CLI to run —
# this is purely for operator convenience)
RUN apk add --no-cache vips ca-certificates tzdata sqlite
RUN apk add --no-cache vips librsvg ca-certificates tzdata sqlite

# Run as non-root user for security — same pattern as the dividend-portfolio Dockerfile.
RUN addgroup -S app && adduser -S -G app app
Expand Down
Loading