|
1 | 1 | # serve-svn |
2 | | -Simple container to run SVN with DAV and UI |
| 2 | +## Very simple container to run WebSVN viewer and provide access to svn utilities and svnserve. |
| 3 | + |
| 4 | + sudo docker run -d --name svn -p 4000:80 -p 3690:3690 \ |
| 5 | + -e SRV_HOST_PORT=192.168.50.10:4000 \ |
| 6 | + -v /volume4/docker/svn/data:/home/svn \ |
| 7 | + -v /volume4/docker/svn/svn/subversion-access-control:/etc/subversion/subversion-access-control \ |
| 8 | + -v /volume4/docker/svn/svn/passwd:/etc/subversion/passwd \ |
| 9 | + localhost/serve-svn |
| 10 | + |
| 11 | +By default eveything is in read-only mode, but it could be recofigured easily. In this case following could be halpful: |
| 12 | + |
| 13 | + docker exec -t svn-server htpasswd -b /etc/subversion/passwd <username> <password> |
| 14 | + |
| 15 | +For some reason Alpine's build of subversion does not have svntools and without `svnauthz` [WebSVN](https://websvnphp.github.io/) refuses to work. So I had to build my own. Setting up build environment is very simple. I |
| 16 | +used [this](https://github.com/yuk7/AlpineWSL) to install Alpine 3.14 under WSL2 in Windows 10 and then followed [the official guide](https://wiki.alpinelinux.org/wiki/Creating_an_Alpine_package#Setup_your_system_and_account). Takes about 3 minutes to complete. |
| 17 | + |
| 18 | +Building Subversion with `svnauthz` requires a simple patch: |
| 19 | + |
| 20 | + diff --git a/main/subversion/APKBUILD b/main/subversion/APKBUILD |
| 21 | + index 6eb16766a2..3c20964d76 100644 |
| 22 | + --- a/main/subversion/APKBUILD |
| 23 | + +++ b/main/subversion/APKBUILD |
| 24 | + @@ -85,10 +85,10 @@ check() { |
| 25 | + |
| 26 | + package() { |
| 27 | + local _pydir=$(python3 -c "import sysconfig;print(sysconfig.get_path('stdlib'))") |
| 28 | + - make -j1 DESTDIR="$pkgdir" \ |
| 29 | + + make -j1 DESTDIR="$pkgdir" toolsdir=/usr/bin \ |
| 30 | + swig_pydir="$_pydir/libsvn"\ |
| 31 | + swig_pydir_extra="$_pydir/svn" \ |
| 32 | + - install install-swig-pl-lib install-swig-py |
| 33 | + + install install-swig-pl-lib install-swig-py install-tools |
| 34 | + make pure_vendor_install -C subversion/bindings/swig/perl/native \ |
| 35 | + PERL_INSTALL_ROOT="$pkgdir" |
| 36 | + find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete |
| 37 | + |
| 38 | +I am using this container on my Synology to have access to very old code - recently DSM 7.0 dropped svn support and I am to lazy to move old code to git. |
| 39 | + |
| 40 | +Enjoy |
0 commit comments