何亚斌

Docker 部署 SVN(Subvision) 版本控制服务
Docker 部署 SVN(Subvision) 版本控制服务  前段时间给公司搭建了一个 S...
扫描右侧二维码阅读全文
17
2019/02

Docker 部署 SVN(Subvision) 版本控制服务

Docker 部署 SVN(Subvision) 版本控制服务

  前段时间给公司搭建了一个 SVN(Subvision) 版本控制服务,用于公司重要工作文档的版本控制。该 SVN(Subvision) 版本控制服务使用了 Docker 来搭建,具体搭建步骤如下:


一、创建数据存放目录

这里将 SVN(Subvision) 数据存放至 /home/pbversion/Subversion/ 目录下,如需更换目录以下对应位置自行替换,确保其具有读写权限。

mkdir -p /home/pbversion/Subversion/svn 
mkdir -p /home/pbversion/Subversion/svn_backup 
mkdir -p /home/pbversion/Subversion/svn_conf

该 SVN(Subvision) 数据存放目录切不可删除!!!
后期做服务器迁移时该目录务必保证其完整性,除非您真的不想要这些数据。


二、导入 SVN(Subvision) Docker 镜像

docker pull marvambass/subversion:latest

latest 为发布版本号,这里使用最新构建的版本,可根据需要自行替换相应版本号。


三、配置用户及其访问权限

1. 创建权限配置文件


按照上述配置规则根据需求创建配置文件 /home/pbversion/Subversion/svn_conf/dav_svn.authz 内容如下:

[groups]
# 管理组
admin = hb.xia

# 研发组
rdgroupall = liy,gt.yuan,chm.ni,yb.he,zhong.pan,hb.xia,jy.wang

# 生产组
pdgroupall =  liy,gt.yuan,chm.ni,zhong.pan,hb.xia

# 人事行政组
adhrgroupall = jy.chen

# 人事行政项目文档
[panboadhr:/]
@adhrgroupall = rw

# AGS 项目研发存放文档
[agsrd:/]
@rdgroupall = rw

# AGS 项目生产存放文档
[agspd:/]
@pdgroupall = rw

# 管理账户有所有账户的访问权限
[/]
@admin = rw

2. 创建对应用户及密码

密码文件路径: /home/pbversion/Subversion/svn_conf/dav_svn.passwd
密码文件在 Docker 中对应路径: /etc/apache2/dav_svn/dav_svn.passwd

#  若在 svn 容器宿主机上创建密码文件则需在宿主机上安装 svn 密码文件创建工具 
sudo apt install apache2-utils

#  首次创建使用 -c 选项,该选项密码文件不存在时则创建,存在则清空,慎用!
htdigest  -c 密码文件路径 Subversion 用户名

#  向密码文件中添加一个用户
htdigest 密码文件路径 Subversion 用户名

#  宿主机中创建密码文件示例:(按照提示输入添加的用户名的密码)
htdigest -c /home/pbversion/Subversion/svn_conf/dav_svn.passwd Subversion hb.xia
htdigest /home/pbversion/Subversion/svn_conf/dav_svn.passwd Subversion yb.he

#  运行的容器中创建密码文件示例:(按照提示输入添加的用户名的密码)
docker exec -i -t svn htdigest -c /etc/apache2/dav_svn/dav_svn.passwd Subversion hb.xia
docker exec -i -t svn htdigest /etc/apache2/dav_svn/dav_svn.passwd Subversion yb.he

四、启动 Docker 镜像

docker run --name svn \
    --detach \
    --restart always \
    --publish 10083:80 --publish 10084:443 \
    --volume /home/pbversion/Subversion/svn:/var/local/svn \
    --volume /home/pbversion/Subversion/svn_backup:/var/svn-backup \
    --volume /home/pbversion/Subversion/svn_conf:/etc/apache2/dav_svn \
    marvambass/subversion:latest

对外开放的访问端口: 10083 为 http 访问端口; 10084 为 https 访问端口。
latest 为启动的 SVN(Subvision) 的 Docker 镜像版本号,升级版本自行替换对应的镜像版本号。


五、升级 SVN(Subvision) 版本管理服务版本

1. 先停止并删除正在运行的 SVN(Subvision) 的 Docker 镜像运行实例

docker stop svn 
docker rm svn 

2. 参考上述步骤二下载要升级替换的 SVN(Subvision) 镜像版本

docker pull marvambass/subversion:latest

这里举例替换为最新构建版本 latest 。

3. 参考上述步骤四启动对应升级后的 SVN(Subvision) 镜像


六、故障维护

1. 查看容器运行状态

(下图中标示的绿色下划线代表状态,蓝色下划线代表容器名称)
常看容器运行状态.png

2. 查看异常的容器启动运行日志,根据日志查看对应运行状态或相关故障信息

docker logs svn

3. 当启动失败可以简单尝试重新启动容器运行实例

  1. 参考上述步骤五 .1 先停止并删除正在运行的 SVN(Subvision) 的 Docker 镜像运行实例。
  2. 参考上述步骤四重新启动新的 SVN(Subvision) 的 Docker 镜像运行实例。

七、其他帮助信息

遇到其他一些问题或者需要配置其他一些功能可参考帮助文档

Last modification:February 24th, 2019 at 10:53 pm

Leave a Comment