FROM debian:bookworm as base RUN apt update && \ apt install -y bash-completion build-essential git wget make npm vim keychain libvips libvips-tools exiftool sqlite3 # Configure sqlite3 RUN echo ".headers on\n.mode column" > /root/.sqliterc FROM base as builder ENV GO_VERSION 1.24.3 ENV GO_TAR "go-${GO_VERSION}.tar.gz" RUN wget -q https://go.dev/dl/go${GO_VERSION}.linux-$(dpkg --print-architecture).tar.gz -O ${GO_TAR} && \ tar -C /usr/local -xzf ${GO_TAR} && \ rm ${GO_TAR} ENV PATH="${PATH}:/usr/local/go/bin:/root/go/bin" RUN go install --tags "foreign_keys fts5" github.com/sqlc-dev/sqlc/cmd/sqlc@latest # Copy static from the build directory so it contains the generated css. COPY . /build WORKDIR /build RUN make build FROM debian:bookworm as prod RUN apt update && \ apt install -y libvips libvips-tools exiftool sqlite3 COPY db /db COPY templates /templates COPY --from=builder /build/orcashub /orcashub COPY --from=builder /build/static /static # This makes viewing the logs much easier. This variable can be overridden at # runtime if necessary. The database always stores events in UTC. The retrieval # code handles this correctly. ENV TZ="America/Los_Angeles" ENV APP_ENVIRONMENT="prod" WORKDIR / USER 1000 EXPOSE 8000 ENTRYPOINT ["/orcashub"]