tangled
alpha
login
or
join now
futur.blue
/
pegasus
57
fork
atom
objective categorical abstract machine language personal data server
57
fork
atom
overview
issues
2
pulls
pipelines
Update dockerfile to use alpine
futur.blue
2 months ago
8eec7e70
892efdd9
verified
This commit was signed with the committer's
known signature
.
futur.blue
SSH Key Fingerprint:
SHA256:QHGqHWNpqYyw9bt8KmPuJIyeZX9SZewBZ0PR1COtKQ0=
+21
-11
2 changed files
expand all
collapse all
unified
split
.github
workflows
build.yml
Dockerfile
+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
0
0
0
0
0
0
0
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
0
0
0
0
0
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"
0
0
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"