Docker搭建SVN服务器

Docker搭建SVN服务器

宿主机数据文件夹准备

新建文件夹/opt/data/svn/repo,并给docker用户赋读写执行等权限

[docker@promote ~]$ mkdir /opt/data/svn/repo

安装svn服务

搜索svn镜像

[docker@promote ~]$ docker search svn


这里我们取docker.io/garethflowers/svn-server这个镜像

[docker@promote ~]$ docker pull docker.io/garethflowers/svn-server


查看镜像

[docker@promote ~]$ docker images


运行容器

docker run -v /opt/data/svn/repo:/var/opt/svn --name svn-server -p 3690:3690 -e SVN_REPONAME=repository -d svn_configed

进入到容器中进行配置

[docker@promote ~]$ docker exec -it 64c26480276d /bin/sh


创建资源库

/var/opt/svn # svnadmin create /var/opt/svn/repository

资源库配置

/var/opt/svn/repository/conf # vi svnserve.conf


编辑密码文件

/var/opt/svn/repository/conf # vi passwd

新增


修改鉴权文件


退出容器

exit

将容器内生成的资源库repository拷贝到宿主机的对应目录下,因为容器一旦重启,这些信息就会丢失,所以应该持久化到宿主机的文件系统中。

docker cp 容器ID:/var/opt/svn/repository/ /opt/data/svn/repo

重启容器

[docker@promote repo]$ docker restart svn-server


在客户端新增文件

验证正常

将容器删除后再重启,测试文件是否存在,验证重启过后,文件正常

中间遇见的问题

容器内无写权限到宿主机映射过来的文件问题

问题的原因是因为:SeLinux做了安全限制

解决方案如下

1. 在启动容器的时候加上如下参数 --privileged=true

2. 临时关闭SeLinux  sudo setinforce 0

3. 添加selinux规则,改变要挂载的目录的安全性文本 (chcon)

你可能感兴趣的:(Docker搭建SVN服务器)