# SPDX-License-Identifier: AGPL-3.0-or-later # Build: BUILDAH_FORMAT=docker podman build \ # --build-arg BUILD_DATE="$(date -u +%Y-%m-%dT%H:%M:%SZ)" \ # --build-arg GIT_REVISION="$(git describe --always --dirty)" \ # -t favoritter . FROM docker.io/library/golang:1.23-bookworm AS builder WORKDIR /src COPY go.mod go.sum ./ RUN go mod download COPY . . ARG VERSION=dev ARG BUILD_DATE=unknown RUN CGO_ENABLED=0 go build \ -ldflags="-s -w -X main.version=${VERSION} -X main.buildDate=${BUILD_DATE}" \ -o /favoritter ./cmd/favoritter FROM docker.io/library/debian:bookworm-slim ARG BUILD_DATE ARG GIT_REVISION LABEL org.opencontainers.image.created="${BUILD_DATE}" \ org.opencontainers.image.revision="${GIT_REVISION}" \ org.opencontainers.image.source="https://kode.naiv.no/olemd/favoritter" \ org.opencontainers.image.licenses="AGPL-3.0-or-later" \ org.opencontainers.image.title="Favoritter" \ org.opencontainers.image.description="Self-hosted favorites web app" RUN printf 'build_date=%s\ngit_revision=%s\n' "${BUILD_DATE}" "${GIT_REVISION}" > /etc/build-info RUN useradd -r -s /usr/sbin/nologin favoritter \ && mkdir -p /data/uploads \ && chown -R favoritter:favoritter /data USER favoritter COPY --from=builder /favoritter /usr/local/bin/favoritter ENV FAVORITTER_DB_PATH=/data/favoritter.db \ FAVORITTER_UPLOAD_DIR=/data/uploads \ FAVORITTER_LISTEN=:8080 EXPOSE 8080 VOLUME ["/data"] HEALTHCHECK --interval=30s --timeout=3s CMD ["/usr/local/bin/favoritter", "-healthcheck"] ENTRYPOINT ["/usr/local/bin/favoritter"]