svnserver应用
本教程学习内容:
如果还没有docker镜像仓库账户的,先到 阿里云容器镜像仓库注册一个账户,创建好名为svnserver的仓库,再进行下面的教程
如果未安装URLOS的话,请参考官方安装教程
使用URLOS制作svnserver镜像
1、以alpine:3.9为基础镜像,在此基础上制作svnserver镜像,执行以下命令启动容器,容器启动后就自动进入了容器。
docker run -it --name=svnserver alpine:3.9
# 其中svnserver为容器的名字,可以自定义
创建容器失败的情况:如果是端口冲突,换一个端口;如果是容器名字冲突,换一个容器的名字或者删除已存在的容器。查看所有容器:“docker ps -a”,删除容器:执行命令“docker rm -f 容器id”。
4、安装openssh-server和svn,逐条执行下面命令:
sed -i 's@dl-cdn.alpinelinux.org@mirrors.aliyun.com@' /etc/apk/repositories # 更换系统源为阿里的源
apk update && apk add --no-cache openssh-server # 安装openssh-server
sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config # 设置ssh可以用root账户登录
ssh-keygen -t rsa -P "" -f /etc/ssh/ssh_host_rsa_key # 生成rsa密钥
ssh-keygen -t ecdsa -P "" -f /etc/ssh/ssh_host_ecdsa_key # 生成ecdsa密钥
ssh-keygen -t ed25519 -P "" -f /etc/ssh/ssh_host_ed25519_key # 生成ed25519密钥
apk add subversion && rm -rf /var/cache/apk/* # 安装svn并删除下载的安装包
9、退出容器并将容器保存为镜像
exit # 退出容器
docker commit svnserver registry.cn-shanghai.aliyuncs.com/urlos4/svnserver:1.12.2 # 保存名为svnserver的容器为镜像
注:这里的urlos4为命名空间,registry.cn-shanghai.aliyuncs.com为阿里仓库线路的域名,请根据自己实际的替换
7、上传镜像
docker login --username=你的用户名 registry.cn-shanghai.aliyuncs.com # 登录到阿里云容器镜像仓库
docker push registry.cn-shanghai.aliyuncs.com/urlos4/svnserver:1.12.2 # 上传到仓库
注:这里的urlos4为命名空间,registry.cn-shanghai.aliyuncs.com为阿里仓库线路的域名,请根据自己实际的替换
添加镜像到URLOS
1、选择镜像管理 ,点击页面右上角添加按钮:
2、添加镜像,填写如下:
镜像名称:urlos4/svnserver:1.12.2,镜像地址:registry.cn-shanghai.aliyuncs.com/urlos4/svnserver:1.12.2
注:这里的urlos4为命名空间,registry.cn-shanghai.aliyuncs.com为阿里仓库线路的域名,请根据自己实际的替换
3、登录帐户
4、填写镜像大小,执行以下命令可查看本地仓库中显示的镜像大小:
docker images
配置填写后,点击提交,保存到URLOS。
基于添加的镜像创建svnserver应用
1、到应用管理列表,点击右上角添加应用
2、基本信息填写,如下:
3、切换到选项开关,设置如下:
4、反向代理设置:
5、应用市场设置:
6、标签设置:
7、开发者设置:
8、扩展设置:
9、脚本设置:
# 安装脚本
test -d /data/svn || mkdir -p /data/svn;
if [ ! -d /data/svn/project ]; then
cd /data/svn
svnadmin create project && chmod -R 777 project
fi
# 启动脚本
/usr/sbin/sshd
svnserve -d -r /data/svn
# 状态脚本
status1=0 && (ps -ef|grep "/usr/sbin/sshd"|grep -v "grep") && status1=1;
status2=0 && (ps -ef|grep "svnserve"|grep -v "grep") && status2=1;
if [ ${status1} != 0 ] && [ ${status2} != 0 ]; then
statusScriptResult=1
fi
# 监控脚本
{w:statusScript:w}
[ "$statusScriptResult" != 1 ] && exit 1
10、添加使用帮助:
按照上面的配置填写后,点击提交。
11、创建svnserver应用的模板
分别添加下面3个模版:
/data/svn/project/conf/svnserve.conf
/data/svn/project/conf/passwd
/data/svn/project/conf/authz
添加svnserve.conf模板
模板内容 :
[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
#groups-dn=groups
realm = /data/svn/project
#force-username-case = none
#hooks-env = hooks-env
[sasl]
#use-sasl = true
#min-encryption = 0
#max-encryption = 256
添加passwd模板
模板内容 :
[users]
admin = admin123
添加authz模板
模板内容:
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
# [/foo/bar]
# harry = rw
# &joe = r
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
admin = rw
12、添加完模板后,在模板列表中点击右上角的管理扩展变量进入扩展变量列表
分别添加下面2个扩展变量:
- sshPassword(ssh登录密码)
- sshCaption(ssh设置提示)
添加扩展变量sshPassword
添加扩展变量sshCaption
这样,svnserver应用创建完成。
安装svnserver应用并测试
1、在应用管理列表找到刚才新添加的svnserver应用,选择更多->创建服务
2、创建服务填写如下:
按照上面的配置填写后,提交部署。
3、验证部署
部署完成后,使用ssh登录工具,能登入容器内部
使用svn客户端checkout检测,能正常使用