objective categorical abstract machine language personal data server

Update dockerfile to use alpine

futur.blue 8eec7e70 892efdd9

verified
+21 -11
+9 -2
.github/workflows/build.yml
··· 21 - name: Set up Docker Buildx 22 uses: docker/setup-buildx-action@v3 23 24 - - name: Set GIT_REV 25 - run: echo "GIT_REV=`git rev-parse --short HEAD`" >> $GITHUB_ENV 26 27 - name: Build and push 28 uses: docker/build-push-action@v6
··· 21 - name: Set up Docker Buildx 22 uses: docker/setup-buildx-action@v3 23 24 + - uses: actions/checkout@v6 25 + with: 26 + sparse-checkout: | 27 + .git 28 + 29 + - name: Set short git commit SHA 30 + run: | 31 + short_sha=$(git rev-parse --short ${{ github.sha }}) 32 + echo "COMMIT_SHORT_SHA=$short_sha" >> $GITHUB_ENV 33 34 - name: Build and push 35 uses: docker/build-push-action@v6
+12 -9
Dockerfile
··· 1 - FROM ocaml/opam:debian-12-ocaml-5.2 AS build 2 3 ARG NODE_VERSION=v24.11.1 4 ARG OPAM_VERSION=2.5.0 ··· 7 ARG GIT_REV 8 ENV GIT_REV=$GIT_REV 9 10 - RUN sudo apt-get install -y cmake git libev-dev libffi-dev libgmp-dev libssl-dev libsqlite3-dev libpcre3-dev pkg-config 11 12 WORKDIR /home/opam/pegasus 13 ··· 17 ENV CI=true 18 19 RUN bash -c "source $NVM_DIR/nvm.sh && nvm install $NODE_VERSION && nvm alias default $NODE_VERSION && nvm use default && corepack enable pnpm" 20 - 21 - RUN bash -c "curl -fsSL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh | bash -s -- --version $OPAM_VERSION" 22 23 ADD . . 24 ··· 29 RUN opam exec dune pkg lock 30 RUN bash -c "source $NVM_DIR/nvm.sh && opam exec dune build -- --release --stop-on-first-error" 31 32 - FROM debian:12 AS run 33 34 - RUN apt-get update && apt-get install -y ca-certificates libev-dev libffi-dev libgmp-dev libssl-dev libsqlite3-dev libpcre3-dev netbase pkg-config 35 36 RUN mkdir /data 37 38 - COPY --from=build /home/opam/pegasus/_build/default/bin/main.exe /bin/pegasus 39 - COPY --from=build /home/opam/pegasus/_build/default/bin/gen_keys.exe /bin/gen-keys 40 41 - ENTRYPOINT ["/bin/pegasus"] 42 43 LABEL org.opencontainers.image.source=https://tangled.org/futur.blue/pegasus 44 LABEL org.opencontainers.image.description="pegasus, an atproto pds"
··· 1 + FROM ocaml/opam:alpine-3.22-ocaml-5.2 AS build 2 3 ARG NODE_VERSION=v24.11.1 4 ARG OPAM_VERSION=2.5.0 ··· 7 ARG GIT_REV 8 ENV GIT_REV=$GIT_REV 9 10 + USER root 11 + RUN apk add --no-cache cmake git libev-dev libffi-dev gmp-dev openssl-dev sqlite-dev pcre-dev pkgconfig 12 + 13 + RUN bash -c "curl -fsSL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh | bash -s -- --version $OPAM_VERSION" 14 + RUN bash -c "chown opam:opam /usr/bin/opam" 15 + USER opam 16 17 WORKDIR /home/opam/pegasus 18 ··· 22 ENV CI=true 23 24 RUN bash -c "source $NVM_DIR/nvm.sh && nvm install $NODE_VERSION && nvm alias default $NODE_VERSION && nvm use default && corepack enable pnpm" 25 26 ADD . . 27 ··· 32 RUN opam exec dune pkg lock 33 RUN bash -c "source $NVM_DIR/nvm.sh && opam exec dune build -- --release --stop-on-first-error" 34 35 + FROM alpine:3.22 AS run 36 37 + RUN apk add --no-cache ca-certificates cmake git libev-dev libffi-dev gmp-dev openssl-dev sqlite-dev pcre-dev pkgconfig 38 39 RUN mkdir /data 40 41 + COPY --from=build /home/opam/pegasus/_build/default/bin/main.exe /usr/bin/pegasus 42 + COPY --from=build /home/opam/pegasus/_build/default/bin/gen_keys.exe /usr/bin/gen-keys 43 44 + ENTRYPOINT ["/usr/bin/pegasus"] 45 46 LABEL org.opencontainers.image.source=https://tangled.org/futur.blue/pegasus 47 LABEL org.opencontainers.image.description="pegasus, an atproto pds"