Docker Subversion Server based on secured Apache SSL PHP on Ubuntu 14.04
maintained by MarvAmBass
What is it
A Docker Subversion Apache2 Container (based on marvambass/apache2-ssl-php).
It gives you automatically daily dumps of your SVN Repos for your Backup.
Also you are able to create a new Project by just adding a new Folder to your repository root directory.
You can control the access of your Project with a htpasswd file in combination with a authz file.
pre run configuration (optional)
You may create the following two files. If you don't need access control you can just skip this step.
Create authz file like this example:
[groups] admin = user1,user2, testuser devgroup = user5, user6 [project1:/] @admin = rw @devgroup = r # devgroup members are able to read and write on project2 [project2:/] @devgroup = rw # admins have control over every project - and can list all projects on the root point [/] @admin = rw # everybody is able to read repos and sees all projects [/] * = r
To add a new User like 'testuser' with password 'test' use the following command
htpasswd -c $DAV_SVN_CONF/dav_svn.passwd testuser
Or if you're to lazy, just use this line for your file (for testing only!)
Run the container
docker run \ -d \ -v $SVN:/var/local/svn \ -v $SVN_BACKUP:/var/svn-backup \ -v $DAV_SVN_CONF/:/etc/apache2/dav_svn/ \ --name subversion marvambass/subversion \
When I restart the container image (with restart or stop followed by start, or simply shutdown the host and start the container again with start), the container doesn't start because the apache instance isn't correctly closed. I get this at the in docker logs command output:
"httpd (pid 13) already running"
For digest auth you need to prepare your dav_svn.passwd file with htdigest instead htpasswd. When using htdigest the realm is one additional parameter not used in htpasswd. As realm try Subversion. So in my case the command has been:
htdigest -c $DAV_SVN_CONF/dav_svn.passwd Subversion testuser
The apache2 does not accept my testuser, when I try to login. After changing authentication type from Digest to Basic, it works. Is your digest-auth-configuration correct?
The following Dockerfile works for me:
RUN sed -i 's|AuthType Digest|AuthType Basic|g' /etc/apache2/mods-enabled/dav_svn.conf
The rest works great, thank you :)
Danke fürs bereitstellen :)
docker logs gives following error message:
<</usr/local/bin/svn-entrypoint.sh: line 25: /etc/apache2/dav_svn/dav_svn.authz: Permission denied>>
Any idea about how to fix it? I tried to enter the container and access such folder but I do not have necessary privileges to change rw access to the 2 config files.. Thank you