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.

fix

+28 -25
+6 -23
Dockerfile.appview
··· 1 - # ========================================== 2 - # Stage 1: Development with Air hot reload 3 - # ========================================== 4 - FROM docker.io/golang:1.25.2-trixie AS dev 1 + # Production build for ATCR AppView 2 + # Result: ~30MB scratch image with static binary 3 + FROM docker.io/golang:1.25.2-trixie AS builder 5 4 6 5 ENV DEBIAN_FRONTEND=noninteractive 7 6 8 7 RUN apt-get update && \ 9 - apt-get install -y --no-install-recommends sqlite3 libsqlite3-dev curl && \ 10 - rm -rf /var/lib/apt/lists/* && \ 11 - go install github.com/air-verse/air@latest 8 + apt-get install -y --no-install-recommends libsqlite3-dev && \ 9 + rm -rf /var/lib/apt/lists/* 12 10 13 11 WORKDIR /app 14 12 15 - # Copy go.mod first for layer caching 16 13 COPY go.mod go.sum ./ 17 14 RUN go mod download 18 15 19 - # For development: source mounted as volume, Air handles builds 20 - EXPOSE 5000 21 - CMD ["air", "-c", ".air.toml"] 22 - 23 - # ========================================== 24 - # Stage 2: Production build 25 - # ========================================== 26 - FROM dev AS builder 27 - 28 16 COPY . . 29 17 30 18 RUN go generate ./... ··· 34 22 -trimpath \ 35 23 -o atcr-appview ./cmd/appview 36 24 37 - # ========================================== 38 - # Stage 3: Minimal runtime 39 - # ========================================== 25 + # Minimal runtime 40 26 FROM scratch 41 27 42 - # Copy CA certificates for HTTPS (PDS, Jetstream, relay connections) 43 28 COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ 44 - # Copy timezone data for timestamp formatting 45 29 COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo 46 - # Copy optimized binary (SQLite embedded) 47 30 COPY --from=builder /app/atcr-appview /atcr-appview 48 31 49 32 EXPOSE 5000
+21
Dockerfile.dev
··· 1 + # Development image with Air hot reload 2 + # Build: docker build -f Dockerfile.dev -t atcr-appview-dev . 3 + # Run: docker run -v $(pwd):/app -p 5000:5000 atcr-appview-dev 4 + FROM docker.io/golang:1.25.2-trixie 5 + 6 + ENV DEBIAN_FRONTEND=noninteractive 7 + 8 + RUN apt-get update && \ 9 + apt-get install -y --no-install-recommends sqlite3 libsqlite3-dev curl && \ 10 + rm -rf /var/lib/apt/lists/* && \ 11 + go install github.com/air-verse/air@latest 12 + 13 + WORKDIR /app 14 + 15 + # Copy go.mod first for layer caching 16 + COPY go.mod go.sum ./ 17 + RUN go mod download 18 + 19 + # For development: source mounted as volume, Air handles builds 20 + EXPOSE 5000 21 + CMD ["air", "-c", ".air.toml"]
+1 -2
docker-compose.yml
··· 2 2 atcr-appview: 3 3 build: 4 4 context: . 5 - dockerfile: Dockerfile.appview 6 - target: dev 5 + dockerfile: Dockerfile.dev 7 6 image: atcr-appview-dev:latest 8 7 container_name: atcr-appview 9 8 ports: