NOTE - these images are based on the active SVN Edge /trunk commits. They should generally be safe to run but they do represent work that is in progress and may not be complete.
This is a ready to run docker image for SVN Edge. The base image is centos:7. You can run this image as is or use it as a base image and update/install additional CentOS packages, such as those needed for your hook scripts.
The image exposes the Apache Subversion server on port 18080 and the SVN Edge console on port 3343. The assumption is that these ports will be proxied by some other layer where you perform SSL termination. You must supply a persistent volume to permanently store the data, which would include your Subversion repositories as well as the database for SVN Edge.
A simple docker-compose to run this image would look like this:
version: "3.7"
services:
edge:
image: svnedge/devbuild:latest
ports:
- "18080:18080"
- "3343:3343"
environment:
SET_PERMS: "false"
volumes:
- data:/home/svnedge/csvn/data
volumes:
data:
You would then run the application with docker-compose up and login at http://localhost:3343
It is worth noting there are some features of the SVN Edge web console that do not make sense in Docker. We are trusting that you will just avoid those features. For example, do not change the path where repositories are stored unless you are sure you have provided a data volume for that path. Likewise, do not try to change the port number for the Apache server unless you are going to make your own Dockerfile that exposes that port. You CAN configure Apache to use SSL if you want, on port 18080, but as noted earlier, our assumption is that your ingress traffic will hit some kind of load balancer or proxy that terminates the SSL connection and proxies the traffic to port 18080 or 3343 depending on the context.
If you want to just run the image with a single command without using docker-compose you would want something like this:
docker run -d --name=svnedge --mount type=bind,src=`pwd`/data,dst=/home/svnedge/csvn/data -p 3343:3343 -p 18080:18080 svnedge/devbuild:latest
This would mount a folder named "data" in the current working directory as the volume. Adjust accordingly.
If you are interested in how this image was created, this is what the Dockerfile looks like. The source code is in the /trunk/packaging/docker folder of the SVN Edge repository.
FROM centos:7
LABEL vendor="CollabNet Engineering" \
license="AGPL 3.0"
# Expose the Apache and console server ports
EXPOSE 18080
EXPOSE 3343
# Create the svnedge user
RUN useradd -u 1000 svnedge
# Install OpenJDK + required packages
RUN yum install -y java-1.8.0-openjdk-headless zip unzip && \
yum clean all
ENV JAVA_HOME=/usr/lib/jvm/jre-1.8.0
# Install s6 init system
ADD https://github.com/just-containers/s6-overlay/releases/download/v1.22.1.0/s6-overlay-amd64.tar.gz /tmp/
RUN tar xzf /tmp/s6-overlay-amd64.tar.gz -C / --exclude="./bin" && \
tar xzf /tmp/s6-overlay-amd64.tar.gz -C /usr ./bin
ENTRYPOINT ["/init"]
# Install our scripts
COPY ./image/. /
# Install SVN Edge
ADD CollabNetSubversionEdge*.gz /home/svnedge/
RUN mv /home/svnedge/csvn/data /home/svnedge/csvn/data-template
# Define data volume
VOLUME /home/svnedge/csvn/data
Content type
Image
Digest
Size
244.8 MB
Last updated
about 6 years ago
docker pull svnedge/devbuild