# Kontra — GOTH news-opinion site. Self-contained container. # Build context = /home/sam/Docker/Containers/kontra (has src/{go.mod,go.sum,src/...}) FROM golang:1.26-bookworm AS build # templ CLI for codegen (generates *_templ.go before build) RUN go install github.com/a-h/templ/cmd/templ@v0.3.1020 ENV PATH="/root/go/bin:${PATH}" WORKDIR /src COPY src/go.mod src/go.sum ./ RUN go mod download COPY src/src/ ./src/ WORKDIR /src/src RUN templ generate RUN go build -trimpath -ldflags="-s -w" -o /kontra-bin . FROM debian:bookworm-slim RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates git openssh-client bash \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=build /kontra-bin /usr/local/bin/kontra-bin # entrypoint (pull loop + webserver) from runtime mount COPY entrypoint.sh /usr/local/bin/kontra-entrypoint RUN chmod +x /usr/local/bin/kontra-entrypoint EXPOSE 8600 ENTRYPOINT ["/usr/local/bin/kontra-entrypoint", "kontra-bin", "8600"]