Files
docker-svn/Dockerfile
2024-05-15 16:11:12 +02:00

52 lines
2.0 KiB
Docker

#FROM alpine:3.19.0
FROM debian:12-slim
# Install Apache2 and other stuff needed to access svn via WebDav
# Install svn
# Installing utilities for SVNADMIN frontend
# Create required folders
# Create the authentication file for http access
# Getting SVNADMIN interface
RUN apt-get update && apt install -y --no-install-recommends apache2 apache2-utils libapache2-mod-svn libsvn-dev libapache2-mod-auth-gssapi &&\
apt install -y --no-install-recommends subversion supervisor &&\
#apt install -y --no-install-recommends wget unzip php php-apache2 php-session php-json php-ldap php-xml &&\
#sed -i 's/;extension=ldap/extension=ldap/' /etc/php/php.ini &&\
mkdir -p /run/apache2/ &&\
mkdir /home/svn/ &&\
touch /etc/subversion/passwd &&\
echo svn:*:82:82:Subversion system account:/nonexistent:/sbin/nologin >> /etc/passwd &&\
echo svn:*:82:www-data >> /etc/group &&\
# wget --no-check-certificate https://github.com/mfreiholz/iF.SVNAdmin/archive/stable-1.6.2.zip &&\
#unzip stable-1.6.2.zip -d /opt &&\
#rm stable-1.6.2.zip &&\
#mv /opt/iF.SVNAdmin-stable-1.6.2 /opt/svnadmin &&\
#ln -s /opt/svnadmin /var/www/localhost/htdocs/svnadmin &&\
#chmod -R 777 /opt/svnadmin/data
rm -rf /var/lib/apt/lists/*
# Solve a security issue (https://alpinelinux.org/posts/Docker-image-vulnerability-CVE-2019-5021.html)
RUN sed -i -e 's/^root::/root:!:/' /etc/shadow
# Fixing https://github.com/mfreiholz/iF.SVNAdmin/issues/118
#ADD svnadmin/classes/util/global.func.php /opt/svnadmin/classes/util/global.func.php
COPY entrypoint.sh /entrypoint.sh
COPY supervisord.conf /etc/supervisord.conf
# Add SVNAuth file
ADD subversion-access-control /etc/subversion/subversion-access-control
RUN chmod a+w /etc/subversion/* && chmod a+w /home/svn
# Add WebDav configuration
COPY dav_svn.conf /etc/apache2/sites-enabled/dav_svn.conf
# Set HOME in non /root folder
ENV HOME /home
# Expose ports for http and custom protocol access
EXPOSE 80 443 3690
ENTRYPOINT ["/entrypoint.sh"]
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"]