Subversion server. build from (as up-to-date as possible) source code. (latest version is 1.14.5)
6.0K
Subversion is an open source version control system. docker build from source code(latest stable packages). latest version is 1.14.5
| name | version | image update | remark |
|---|---|---|---|
| base-image | - | - | debian:oldstable-slim |
| zlib | 1.3.2 | 2026-07-27 | |
| expat | 2.8.2 | 2026-07-27 | |
| libressl | 4.3.2 | 2026-07-27 | httpd_svn only |
| apr | 1.7.6 | 2025-07-05 | |
| apr-util | 1.6.3 | 2023-02-12 | |
| pcre2 | 10.47 | 2026-07-27 | httpd_svn only |
| httpd | 2.4.68 | 2026-07-27 | httpd_svn only |
| sqlite-amalgamation | 3.53.4 | 2026-07-27 | |
| subversion | 1.14.5 | 2024-12-22 |
Subversion 1.10.x end of life. The currently available version is 1.14.X
| service type | github branch(URL) | ** summary (protocol) ** |
|---|---|---|
| svnserve | r0/svnserve/v1.14 | subversion standalone server (use svn://) |
| httpd_svn | r1/httpd_svn/v1.14 | httpd(apache) + mod_dav_svn (use http://) |
host side.
sudo mkdir -p /var/svn
docker pull obslib/subversion:svnserve-latest-0
docker run -it --rm -v /var/svn:/var/svn --name svnserve obslib/subversion:svnserve-latest-0 /bin/bash
container side.
/usr/local/subversion/bin/svnadmin create /var/svn/repos
docker run -it -p 3690:3690 -v /var/svn:/var/svn -d --name svnserve obslib/subversion:svnserve-latest-0
host side.
sudo mkdir -p /var/svn
docker pull obslib/subversion:httpd_svn-latest-1
docker run -it --rm -v /var/svn:/var/svn --name httpd_svn obslib/subversion:httpd_svn-latest-1 /bin/bash
container side.
/usr/local/subversion/bin/svnadmin create /var/svn/repos
cp /usr/local/httpd/conf/httpd-svn.conf /var/svn/repos/conf/httpd-svn.conf
chown -R www-data:www-data /var/svn
docker run -it -p 80:80 -v /var/svn:/var/svn -d --name httpd_svn obslib/subversion:httpd_svn-latest-1
svn protocol server (svn://)
please link /var/run/saslauthd
cd ${your/svn/work/dir}
mkdir -p /var/svn
mkdir -p /var/svn/sasl2/var/run/saslauthd
mkdir -p /var/svn/sasl2/usr/lib/sasl2
mkdir -p /var/svn/sasl2/etc
./saslauthd/Dockerfile)mkdir ./saslauthd
vi ./saslauthd/Dockerfile
FROM ubuntu:bionic
RUN apt-get update && apt-get install -y --install-suggests \
db5.3-sql-util \
sasl2-bin \
&& apt-get -y clean \
&& rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["/usr/sbin/saslauthd", "-d"]
CMD ["-a", "sasldb"]
docker build -t "saslauthd" ./saslauthd
docker run -it --rm -d --name saslauthd-temp saslauthd
docker cp saslauthd-temp:/etc/sasldb2 /var/svn/sasl2/etc/sasldb2
docker stop saslauthd-temp
docker rmi saslauthd
/var/svn/sasl2/usr/lib/sasl2/svn.conf)vi /var/svn/sasl2/usr/lib/sasl2/svn.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
/var/svn/repos)docker run -it --rm -p 3690:3690 -v /var/svn:/var/svn -d --name svnserve-temp obslib/subversion:svnserve-latest-0
docker stop svnserve-temp
/var/svn/repos/conf/svnserve.conf)vi /var/svn/repos/conf/svnserve.conf
...
[general]
...
#password-db = passwd
...
realm = My First Repository
...
[sasl]
...
use-sasl = true
...
vi ./docker-compose.yml
version: '3'
services:
saslauthd:
build: ./saslauthd
image: saslauthd
volumes:
- /var/svn/sasl2/etc/sasldb2:/etc/sasldb2
- /var/svn/sasl2/var/run/saslauthd:/var/run/saslauthd
restart: always
svnserve:
depends_on:
- saslauthd
image: obslib/subversion:svnserve-latest-0
ports:
- "3690:3690"
volumes:
- /var/svn:/var/svn
- /var/svn/sasl2/var/run/saslauthd:/var/run/saslauthd
- /var/svn/sasl2/usr/lib/sasl2/svn.conf:/usr/lib/sasl2/svn.conf
restart: always
cd ${your/svn/work/dir}
docker-compose up -d
docker exec -it docker-saslauthd_saslauthd_1 bash
/usr/sbin/saslpasswd2 -c harry -u "My First Repository"
/usr/sbin/sasldblistusers2
/usr/sbin/testsaslauthd -u harry -p harryssecret -r "My First Repository"
cd ${your/svn/work/dir}
docker-compose down
cd ${your/svn/work/dir}
mkdir -p /var/svn
mkdir -p /var/svn/sasl2/var/run/saslauthd
mkdir -p /var/svn/sasl2/usr/lib/sasl2
./saslauthd/Dockerfile)mkdir ./saslauthd
vi ./saslauthd/Dockerfile
FROM ubuntu:bionic
RUN apt-get update && apt-get install -y --install-suggests \
sasl2-bin \
&& apt-get -y clean \
&& rm -rf /var/lib/apt/lists/*
COPY saslauthd.conf /etc/saslauthd.conf
ENTRYPOINT ["/usr/sbin/saslauthd", "-d"]
CMD ["-a", "ldap", "-O", "/etc/saslauthd.conf"]
./saslauthd/saslauthd.conf)vi ./saslauthd/saslauthd.conf
(set up for your environment)
ldap_servers: ldap://devldap/
ldap_version: 3
ldap_bind_dn: cn=admin,dc=devhost,dc=devdomain
ldap_password: adminadmin
ldap_mech: md5
ldap_search_base: cn=Users,dc=devhost,dc=devdomain
ldap_filter: uid=%u
ldap_deref: search
/var/svn/sasl2/usr/lib/sasl2/svn.conf)vi /var/svn/sasl2/usr/lib/sasl2/svn.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
/var/svn/repos)docker run -it --rm -p 3690:3690 -v /var/svn:/var/svn -d --name svnserve-temp obslib/subversion:svnserve-latest-0
docker stop svnserve-temp
/var/svn/repos/conf/svnserve.conf)vi /var/svn/repos/conf/svnserve.conf
...
[general]
...
#password-db = passwd
...
#realm = My First Repository
...
[sasl]
...
use-sasl = true
...
vi ./docker-compose.yml
version: '3'
services:
saslauthd:
build: ./saslauthd
image: saslauthd
volumes:
- /var/svn/sasl2/var/run/saslauthd:/var/run/saslauthd
restart: always
svnserve:
depends_on:
- saslauthd
image: obslib/subversion:svnserve-latest-0
ports:
- "3690:3690"
volumes:
- /var/svn:/var/svn
- /var/svn/sasl2/var/run/saslauthd:/var/run/saslauthd
- /var/svn/sasl2/usr/lib/sasl2/svn.conf:/usr/lib/sasl2/svn.conf
restart: always
cd ${your/svn/work/dir}
docker-compose up -d
docker exec -it docker-saslauthd_saslauthd_1 bash
/usr/sbin/testsaslauthd -u harry -p harryssecret
cd ${your/svn/work/dir}
docker-compose down
http protocol server (use http://)
docker exec -it httpd_svn bash
/usr/local/httpd/bin/htpasswd -c /var/svn/repos/conf/.htpasswd harry
New password: harryssecret
Re-type new password: harryssecret
Adding password for user harry
exit
Content type
Image
Digest
sha256:84e656908…
Size
79.6 MB
Last updated
2 months ago
docker pull obslib/subversion:httpd_svn-latest-1