1### Compile stage
2FROM golang:1.25.1-bookworm AS build-env
3
4ADD . /dockerbuild
5WORKDIR /dockerbuild
6
7RUN GIT_VERSION=$(git describe --tags --long --always || echo "dev-local") && \
8 go mod tidy && \
9 go build -ldflags "-X main.Version=$GIT_VERSION" -o cocoon ./cmd/cocoon
10
11### Run stage
12FROM debian:bookworm-slim AS run
13
14RUN apt-get update && apt-get install -y dumb-init runit ca-certificates && rm -rf /var/lib/apt/lists/*
15ENTRYPOINT ["dumb-init", "--"]
16
17WORKDIR /
18RUN mkdir -p data/cocoon
19COPY --from=build-env /dockerbuild/cocoon /
20
21CMD ["/cocoon", "run"]
22
23LABEL org.opencontainers.image.source=https://github.com/haileyok/cocoon
24LABEL org.opencontainers.image.description="Cocoon ATProto PDS"
25LABEL org.opencontainers.image.licenses=MIT