Something went wrong. Try again.
objective categorical abstract machine language personal data server
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051FROM ocaml/opam:debian-12-ocaml-5.4 AS build
ARG NODE_VERSION=v24.11.1ARG OPAM_VERSION=2.5ARG DUNE_PIN=git+https://github.com/futurGH/dune#336d7bdbb107a5982fe271cd1cc252b07285e76e
ARG GIT_REVENV GIT_REV=$GIT_REV
USER rootRUN apt-get update && apt-get install -y cmake git libev-dev libffi-dev libgmp-dev libssl-dev libsqlite3-dev libpcre3-dev pkg-configRUN ln -nsf /usr/bin/opam-${OPAM_VERSION} /usr/bin/opamUSER opam
WORKDIR /home/opam/pegasus
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
ENV NVM_DIR=/home/opam/.nvmENV CI=true
RUN bash -c "source $NVM_DIR/nvm.sh && nvm install $NODE_VERSION && nvm alias default $NODE_VERSION && nvm use default && corepack enable pnpm"
ADD . .
RUN bash -c "source $NVM_DIR/nvm.sh && pnpm install --frozen-lockfile"
ENV DUNE_CACHE="enabled"RUN --mount=type=cache,target=/home/opam/.opam/download-cache,uid=1000,gid=1000 \ --mount=type=cache,target=/home/opam/.cache/dune,uid=1000,gid=1000 \ opam pin add dune $DUNE_PIN -yRUN --mount=type=cache,target=/home/opam/.cache/dune,uid=1000,gid=1000 \ opam exec dune pkg lockRUN --mount=type=cache,target=/home/opam/.cache/dune,uid=1000,gid=1000 \ bash -c "source $NVM_DIR/nvm.sh && opam exec dune build -- --release --stop-on-first-error"
FROM debian:12 AS run
RUN apt-get update && apt-get install -y ca-certificates cmake git libev-dev libffi-dev libgmp-dev libssl-dev libsqlite3-dev libpcre3-dev pkg-config netbase
RUN mkdir /data
COPY --from=build /home/opam/pegasus/_build/default/bin/main.exe /bin/pegasusCOPY --from=build /home/opam/pegasus/_build/default/bin/gen_keys.exe /bin/gen-keys
ENTRYPOINT ["/bin/pegasus"]
LABEL org.opencontainers.image.source="https://github.com/futurgh/pegasus"LABEL org.opencontainers.image.description="pegasus, an atproto pds"LABEL org.opencontainers.image.licenses=MPL-2.0