Dockerfile 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # Alpine Linux with s6 service management
  2. FROM smebberson/alpine-base:3.2.0
  3. # Install Apache2 and other stuff needed to access svn via WebDav
  4. # Install svn
  5. # Installing utilities for SVNADMIN frontend
  6. # Create required folders
  7. # Create the authentication file for http access
  8. # Getting SVNADMIN interface
  9. RUN apk add --no-cache apache2 apache2-utils apache2-webdav mod_dav_svn &&\
  10. apk add --no-cache subversion &&\
  11. apk add --no-cache wget unzip php7 php7-apache2 php7-session php7-json php7-ldap &&\
  12. apk add --no-cache php7-xml &&\
  13. sed -i 's/;extension=ldap/extension=ldap/' /etc/php7/php.ini &&\
  14. mkdir -p /run/apache2/ &&\
  15. mkdir /home/svn/ &&\
  16. mkdir /etc/subversion &&\
  17. touch /etc/subversion/passwd &&\
  18. wget --no-check-certificate https://github.com/mfreiholz/iF.SVNAdmin/archive/stable-1.6.2.zip &&\
  19. unzip stable-1.6.2.zip -d /opt &&\
  20. rm stable-1.6.2.zip &&\
  21. mv /opt/iF.SVNAdmin-stable-1.6.2 /opt/svnadmin &&\
  22. ln -s /opt/svnadmin /var/www/localhost/htdocs/svnadmin &&\
  23. chmod -R 777 /opt/svnadmin/data
  24. # Solve a security issue (https://alpinelinux.org/posts/Docker-image-vulnerability-CVE-2019-5021.html)
  25. RUN sed -i -e 's/^root::/root:!:/' /etc/shadow
  26. # Fixing https://github.com/mfreiholz/iF.SVNAdmin/issues/118
  27. ADD svnadmin/classes/util/global.func.php /opt/svnadmin/classes/util/global.func.php
  28. # Add services configurations
  29. ADD apache/ /etc/services.d/apache/
  30. ADD subversion/ /etc/services.d/subversion/
  31. # Add SVNAuth file
  32. ADD subversion-access-control /etc/subversion/subversion-access-control
  33. RUN chmod a+w /etc/subversion/* && chmod a+w /home/svn
  34. # Add WebDav configuration
  35. ADD dav_svn.conf /etc/apache2/conf.d/dav_svn.conf
  36. # Set HOME in non /root folder
  37. ENV HOME /home
  38. # Expose ports for http and custom protocol access
  39. EXPOSE 80 443 3690