52 lines
2.0 KiB
Docker
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"] |