A container registry that uses the AT Protocol for manifest storage and S3 for blob storage.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 53 lines 1.8 kB view raw
1# Production build for ATCR AppView 2# Result: ~30MB scratch image with static binary 3FROM docker.io/golang:1.25.7-trixie AS builder 4 5ENV DEBIAN_FRONTEND=noninteractive 6 7RUN apt-get update && \ 8 apt-get install -y --no-install-recommends libsqlite3-dev nodejs npm && \ 9 rm -rf /var/lib/apt/lists/* 10 11WORKDIR /app 12 13COPY go.mod go.sum ./ 14RUN go mod download 15 16COPY . . 17 18RUN npm ci 19RUN go generate ./... 20 21RUN CGO_ENABLED=1 go build \ 22 -ldflags="-s -w -linkmode external -extldflags '-static'" \ 23 -tags sqlite_omit_load_extension \ 24 -trimpath \ 25 -o atcr-appview ./cmd/appview 26 27RUN CGO_ENABLED=0 go build \ 28 -ldflags="-s -w" \ 29 -trimpath \ 30 -o healthcheck ./cmd/healthcheck 31 32# Minimal runtime 33FROM scratch 34 35COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ 36COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo 37COPY --from=builder /app/atcr-appview /atcr-appview 38COPY --from=builder /app/healthcheck /healthcheck 39 40EXPOSE 5000 41 42LABEL org.opencontainers.image.title="ATCR AppView" \ 43 org.opencontainers.image.description="ATProto Container Registry - OCI-compliant registry using AT Protocol for manifest storage" \ 44 org.opencontainers.image.authors="ATCR Contributors" \ 45 org.opencontainers.image.source="https://tangled.org/evan.jarrett.net/at-container-registry" \ 46 org.opencontainers.image.documentation="https://tangled.org/evan.jarrett.net/at-container-registry" \ 47 org.opencontainers.image.licenses="MIT" \ 48 org.opencontainers.image.version="0.1.0" \ 49 io.atcr.icon="https://imgs.blue/evan.jarrett.net/1TpTNrRelfloN2emuWZDrWmPT0o93bAjEnozjD6UPgoVV9m4" \ 50 io.atcr.readme="https://tangled.org/evan.jarrett.net/at-container-registry/raw/main/docs/appview.md" 51 52ENTRYPOINT ["/atcr-appview"] 53CMD ["serve"]