diff options
author | Leonard Kugis <leonard@kug.is> | 2025-09-17 18:20:38 +0200 |
---|---|---|
committer | Leonard Kugis <leonard@kug.is> | 2025-09-17 18:20:38 +0200 |
commit | c48fbfb7b85d9c5264be1d68063b8ac3af9e2899 (patch) | |
tree | 97c7d27e07392ba8ce303d0e917ee44972e94233 /Dockerfile | |
download | cgithub-c48fbfb7b85d9c5264be1d68063b8ac3af9e2899.tar.gz |
Initial commit
Diffstat (limited to 'Dockerfile')
-rw-r--r-- | Dockerfile | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..59862b1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,59 @@ +FROM debian:bookworm-slim AS assets + +RUN apt-get update && \ + apt-get install -y --no-install-recommends curl ca-certificates && \ + rm -rf /var/lib/apt/lists/* && \ + find /var/log -type f -name '*.log*' -delete + +RUN mkdir -p /var/www/html/cgit-css && \ + curl -sSL -o /var/www/html/favicon.ico https://git-scm.com/favicon.ico && \ + curl -sSL -o /var/www/html/cgit-css/highlight.min.js https://raw.githubusercontent.com/highlightjs/cdn-release/refs/heads/11-stable/build/highlight.min.js && \ + curl -sSL -o /var/www/html/cgit-css/github.min.css https://raw.githubusercontent.com/highlightjs/cdn-release/refs/heads/11-stable/build/styles/github.min.css && \ + curl -sSL -o /var/www/html/cgit-css/github-dark.min.css https://raw.githubusercontent.com/highlightjs/cdn-release/refs/heads/11-stable/build/styles/github-dark.min.css && \ + sed -i '1s/^/@media screen and (prefers-color-scheme: dark) {/' /var/www/html/cgit-css/github-dark.min.css && echo '}' >> /var/www/html/cgit-css/github-dark.min.css && \ + echo 'User-agent: *\nDisallow: /' >> /var/www/html/robots.txt + +FROM debian:bookworm-slim + +RUN apt-get update && \ + apt-get install -y --no-install-recommends apache2 cgit python3-markdown && \ + rm -rf /var/lib/apt/lists/* && \ + find /var/log -type f -name '*.log*' -delete + +COPY --from=assets /var/www/html /var/www/html +COPY theme.css /var/www/html/cgit-css/ +COPY head-include.html /var/www/html/cgit-css/ +COPY md2html.py /usr/lib/cgit/filters/ +RUN cp /usr/share/cgit/cgit.css /usr/share/cgit/cgit.png /var/www/html/cgit-css/ + +RUN echo 'Listen ${APACHE_PORT}' > /etc/apache2/ports.conf && \ + echo 'ServerName ${APACHE_SERVER_NAME}' >> /etc/apache2/apache2.conf && \ + sed -e '/^User /d' -e '/^Group /d' -e 's;^PidFile .*;PidFile ${APACHE_RUN_DIR}/apache.pid;gi' -e 's;^ErrorLog .*;ErrorLog /dev/stderr;gi' \ + -e 's;Require all granted;Require all denied;gi' -e 's;"^\\\\.ht";"^\\.";g' -i /etc/apache2/apache2.conf && \ + rm -f /etc/apache2/sites-enabled/* /etc/apache2/mods-enabled/* /etc/apache2/conf-enabled/* && \ + ln -s ../mods-available/mpm_event.load /etc/apache2/mods-enabled/mpm_event.load && \ + ln -s ../mods-available/mpm_event.conf /etc/apache2/mods-enabled/mpm_event.conf && \ + ln -s ../mods-available/mime.load /etc/apache2/mods-enabled/mime.load && \ + ln -s ../mods-available/alias.load /etc/apache2/mods-enabled/alias.load && \ + ln -s ../mods-available/filter.load /etc/apache2/mods-enabled/filter.load && \ + ln -s ../mods-available/deflate.load /etc/apache2/mods-enabled/deflate.load && \ + ln -s ../mods-available/deflate.conf /etc/apache2/mods-enabled/deflate.conf && \ + ln -s ../mods-available/headers.load /etc/apache2/mods-enabled/headers.load && \ + ln -s ../mods-available/authn_core.load /etc/apache2/mods-enabled/authn_core.load && \ + ln -s ../mods-available/authz_core.load /etc/apache2/mods-enabled/authz_core.load && \ + ln -s ../mods-available/authn_file.load /etc/apache2/mods-enabled/authn_file.load && \ + ln -s ../mods-available/authz_user.load /etc/apache2/mods-enabled/authz_user.load && \ + ln -s ../mods-available/auth_basic.load /etc/apache2/mods-enabled/auth_basic.load && \ + ln -s ../mods-available/cgid.load /etc/apache2/mods-enabled/cgid.load && \ + echo 'TypesConfig /etc/mime.types\nDeflateAlterETag NoChange' > /etc/apache2/mods-enabled/mime.conf && \ + echo 'ServerTokens Major\nServerSignature Off\nTraceEnable Off' > /etc/apache2/conf-enabled/security.conf && \ + echo 'CustomLog /dev/stdout combined' > /etc/apache2/conf-enabled/access-log.conf + +COPY cgitrc /etc/ +COPY apache.conf /etc/apache2/sites-enabled/ + +ENV APACHE_PORT=8080 +ENV APACHE_RUN_DIR=/dev/shm +ENV APACHE_SERVER_NAME=cgit + +ENTRYPOINT ["/sbin/apache2", "-D", "FOREGROUND"] |