summaryrefslogtreecommitdiff
path: root/gemini.Dockerfile
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2026-06-18 19:59:58 +0100
committerJoe Carstairs <me@joeac.net>2026-06-18 20:01:32 +0100
commit2d89475f0b9648e5efcf827d3e01356ee84b5465 (patch)
treeb7e0e41a729e638abc97f287cfb6b1fa772f50d1 /gemini.Dockerfile
parentf71fbdafacff125830268a4d7eab29f39f55aec1 (diff)
renames capsule -> gemini
Diffstat (limited to 'gemini.Dockerfile')
-rw-r--r--gemini.Dockerfile38
1 files changed, 38 insertions, 0 deletions
diff --git a/gemini.Dockerfile b/gemini.Dockerfile
new file mode 100644
index 0000000..7cd4cad
--- /dev/null
+++ b/gemini.Dockerfile
@@ -0,0 +1,38 @@
+FROM alpine:3.23 AS agate
+RUN apk --update --no-cache add rust cargo \
+ && wget -O - https://github.com/mbrubeck/agate/archive/refs/tags/v3.3.20.tar.gz | tar -xz \
+ && cargo install --path agate-3.3.20/ \
+ && apk del rust cargo \
+ && rm -rf agate-3.3.20 agate-target
+
+FROM alpine:3.23 AS comitium
+RUN apk --no-cache add make go scdoc
+RUN wget -O - https://git.sr.ht/~nytpu/comitium/archive/v1.8.2.tar.gz | tar -xz \
+ && make --directory=comitium-v1.8.2 \
+ && mv comitium-v1.8.2/build/comitium /usr/local/bin/comitium \
+ && apk del make go scdoc \
+ && rm -rf comitium-v1.8.2
+
+FROM alpine:3.23 AS final
+RUN mkdir -p /var/app/content
+WORKDIR /var/app
+COPY gemini/.certificates .certificates
+RUN crontab -l > crontab.tmp \
+ && echo "0 */6 * * * /usr/local/bin/comitium refresh --data /var/app/comitium-data" >> crontab.tmp \
+ && crontab crontab.tmp \
+ && rm crontab.tmp
+
+# bash is needed to run the build scripts
+# busybox-openrc provides rc-service, which runs crond
+# gcc is a dependency for agate
+# make is needed to run the Makefile
+RUN apk --no-cache add bash busybox-openrc gcc make
+RUN rc-update add crond
+COPY --from=agate /root/.cargo/bin/agate /usr/local/bin/agate
+COPY --from=comitium /usr/local/bin/comitium /usr/local/bin/comitium
+
+COPY gemini .
+COPY common /var/common
+RUN make
+
+CMD ./run.sh