summaryrefslogtreecommitdiff
path: root/Containerfile
diff options
context:
space:
mode:
Diffstat (limited to 'Containerfile')
-rw-r--r--Containerfile58
1 files changed, 58 insertions, 0 deletions
diff --git a/Containerfile b/Containerfile
new file mode 100644
index 0000000..0e46cdb
--- /dev/null
+++ b/Containerfile
@@ -0,0 +1,58 @@
+ARG DEBIAN_VERSION=trixie
+
+FROM debian:${DEBIAN_VERSION}-slim AS builder
+
+ARG CGIT_COMMIT=044821677c774cd24f25f1818ea51d09cc64b006
+
+RUN apt-get update \
+ && apt-get install --no-install-recommends -y \
+ build-essential \
+ ca-certificates \
+ git \
+ libssl-dev \
+ libzip-dev \
+ pkg-config \
+ zlib1g-dev \
+ && rm -rf /var/lib/apt/lists/*
+
+WORKDIR /src
+
+RUN git init cgit \
+ && cd cgit \
+ && git remote add origin https://git.zx2c4.com/cgit \
+ && git fetch --depth=1 origin "${CGIT_COMMIT}" \
+ && git checkout --detach FETCH_HEAD \
+ && git submodule update --init --recursive
+
+WORKDIR /src/cgit
+
+RUN make -j"$(nproc)" \
+ NO_LUA=1 \
+ NO_GETTEXT=YesPlease
+
+RUN make install \
+ NO_LUA=1 \
+ NO_GETTEXT=YesPlease \
+ DESTDIR=/out \
+ CGIT_SCRIPT_PATH=/www/cgi-bin \
+ CGIT_DATA_PATH=/www
+
+
+FROM debian:${DEBIAN_VERSION}-slim
+
+RUN apt-get update \
+ && apt-get install --no-install-recommends -y \
+ busybox-static \
+ tini \
+ zlib1g \
+ && rm -rf /var/lib/apt/lists/*
+
+COPY --from=builder /out/www /www
+
+RUN mkdir -p \
+ /srv/git \
+ /var/cache/cgit
+
+EXPOSE 8080
+
+ENTRYPOINT ["/usr/bin/tini", "--", "/bin/busybox", "httpd", "-f", "-p", "0.0.0.0:8080", "-h", "/www"]