This docker image was built on top of the Ubuntu 14.04 latest image using docker version 1.4.1
Subversion is installed as is Apache 2 web server for remote access.
Setup is as described in https://help.ubuntu.com/community/Subversion
The basic install is complete along with the WebDAV protocol setup but I have not included the SSL , SSH or custom protocol setup.
To run the image simply type (-p maps port 80 of the host to port 80 of the container)
docker run -d -p 80:80 krisdavison/svn-server /startup.sh
Optionally you can name the container using the (substitute mysvnserver with your own name)
Optionally you can map a volume to the svn repository root folder for backups etc
The image is pre-configured with a single remote user
If you would like to add additional users you can attach to the running container as below.
docker exec -it <container-name> bash
To clear all old users and add a new user simple type. (substitute your user for user-name) and then the system will request that users password.
htpasswd -c /etc/subversion/passwd user-name
or to add a new user without removing all the old ones type this. (remove the -c)
htpasswd /etc/subversion/passwd user-name
To exit the container in a safe way after making these changes simply type.
Checking it worked
On your host machine open a browser and type in the following url.
(This will ask for your username and password - Default is : user and password)
The browser should then show an empty SampleProject that has been created just to prove the svn repo works. If this does not work please make sure you are using the newest version of the docker image and that you specified /startup.sh as the executable as the last param.
Future Changes / ToDo List
- Provide a way to specify a txt file of username and passwords for simple setup of users.
For Running in HTTPS
sudo docker run -d -p 443:443 krisdavison/svn-server:v2.0 /startup.sh
Execute the below commands in container (docker exec -it <container-name> bash)
sudo a2enmod ssl
sudo a2ensite default-ssl
$ docker pull krisdavison/svn-server:v2.0
$ docker run -d -p 80:80 krisdavison/svn-server:v2.0 /startup.sh
ok, it's installed. A test:
$ echo "foo" > foo.txt
$ curl -u user:password -T foo.txt http://localhost/svn/SampleProject/foo2.txt
"409 Conflict" was the result, yet there's nothing there, as illustrated by the following
$ svn --username user --password password ls http://localhost/svn/SampleProject
@krisdavison, you should probably change the instructions to:
docker run -d -p 80:80 krisdavison/svn-server:v2.0 /startup.sh
As the "latest" image doesn't contain "startup.sh"
Error response from daemon: Container svn103 is not running
@krisdavison, could you make the Dockerfile available, please?
Version 2.0 is great image. Thanks.
$ sudo docker run -d -p 80:80 krisdavison/svn-server /startup.sh
2015/05/29 16:27:10 Error response from daemon: Cannot start container 4ad2e849ec44ea434dd6c2fb88140e70109abb9ee8acc0edcb3ad8dfbafad2ac: exec: "/startup.sh": stat /startup.sh: no such file or directory
kiripeti, pull the v2.0 tag. It works fine.
There is an error:
FATA Error response from daemon: Cannot start container:  System error: exec: "/startup.sh": stat /startup.sh: no such file or directory