aboutsummaryrefslogtreecommitdiffstats
path: root/services/cgit/Dockerfile
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-02-11 21:00:52 +0100
committerThomas Vanbesien <tvanbesi@proton.me>2026-02-12 14:56:15 +0100
commit6c22a6e48e8ff49a69434eca7a7b78158576cb7b (patch)
tree2648d665bf9c27166da052fe2aa8281b56ceb498 /services/cgit/Dockerfile
downloadnet_services-6c22a6e48e8ff49a69434eca7a7b78158576cb7b.tar.gz
net_services-6c22a6e48e8ff49a69434eca7a7b78158576cb7b.zip
Initial import
Diffstat (limited to 'services/cgit/Dockerfile')
-rw-r--r--services/cgit/Dockerfile40
1 files changed, 40 insertions, 0 deletions
diff --git a/services/cgit/Dockerfile b/services/cgit/Dockerfile
new file mode 100644
index 0000000..4c23eb2
--- /dev/null
+++ b/services/cgit/Dockerfile
@@ -0,0 +1,40 @@
+FROM debian:13.3-slim AS build
+
+ARG CGIT_COMMIT=09d24d7cd0b7e85633f2f43808b12871bb209d69
+
+# Install build dependencies
+RUN apt-get update \
+ && apt-get install --assume-yes --no-install-recommends \
+ make gcc pkg-config curl xz-utils ca-certificates libzip-dev libssl-dev liblua5.2-dev \
+ && rm -rf /var/lib/apt/lists/*
+
+# Build cgit
+ADD --unpack=true https://git.zx2c4.com/cgit/snapshot/cgit-${CGIT_COMMIT}.tar.xz /usr/src
+WORKDIR /usr/src/cgit-${CGIT_COMMIT}
+COPY cgit.conf .
+RUN make get-git && make LUA_PKGCONFIG=lua5.2 && make install && rm -rf $(pwd)
+
+FROM httpd:2.4.66 AS final
+
+ARG UID=1000 GID=1000
+
+# Create cgit user (used by Apache)
+RUN groupadd --gid ${GID} cgit && useradd --uid ${UID} --groups cgit --no-user-group cgit
+
+# Copy cgit built in previous stage
+COPY --from=build /var/www/htdocs/cgit /var/www/htdocs
+COPY --from=build /usr/local/lib/cgit/filters /usr/local/lib/cgit/filters
+RUN mkdir /var/cache/cgit && chown cgit:cgit /var/cache/cgit
+
+# Install runtime dependencies
+RUN apt-get update \
+ && apt-get install --assume-yes --no-install-recommends \
+ python3 python3-pygments python3-markdown \
+ && rm -rf /var/lib/apt/lists/*
+
+# HTTP server configuration
+COPY httpd.conf /usr/local/apache2/conf/
+
+WORKDIR /var/www/htdocs
+EXPOSE 80
+VOLUME /srv/git /etc/cgit /usr/local/lib/cgit/filters/commit /srv/cgit