A container registry that uses the AT Protocol for manifest storage and S3 for blob storage. atcr.io
docker container atproto go
76
fork

Configure Feed

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

fix

evan.jarrett.net a9704143 96e29a54

verified
+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: