# t5de-catalog in a container: a static build on distroless. Data (catalog.db, files/) goes in the /data volume. # # docker build -t t5de-catalog . # docker run -p 4102:4102 -v catalog-data:/data -e HUB_URL=... -e CATALOG_ID=... -e CATALOG_KEY=... \ # -e CATALOG_PUBLIC_URL=... -e WEB_ORIGIN=... t5de-catalog FROM golang:1.27-alpine AS build RUN apk add --no-cache git # T5DE's modules (t5de-api) come straight from its Gitea. ENV GOPRIVATE=git.t5de.dev CGO_ENABLED=0 ARG VERSION=dev WORKDIR /src COPY go.mod go.sum ./ RUN go mod download COPY . . RUN go build -trimpath -buildvcs=false \ -ldflags "-s -w -buildid= -X git.t5de.dev/t5de/t5de-catalog/internal/buildinfo.Version=${VERSION}" \ -o /out/t5de-catalog ./cmd/t5de-catalog \ && mkdir /out/data FROM gcr.io/distroless/static-debian12:nonroot COPY --from=build /out/t5de-catalog /t5de-catalog COPY --from=build --chown=nonroot:nonroot /out/data /data ENV CATALOG_ADDR=0.0.0.0:4102 CATALOG_DATA=/data VOLUME /data EXPOSE 4102 ENTRYPOINT ["/t5de-catalog"]