svnserver应用

本教程学习内容:

  1. 使用URLOS制作svnserver镜像
  2. 添加镜像到URLOS
  3. 基于添加的镜像创建svnserver应用
  4. 安装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、选择镜像管理 ,点击页面右上角添加按钮:

image-20201222170139920


2、添加镜像,填写如下:

image-20201223163705593

镜像名称:urlos4/svnserver:1.12.2,镜像地址:registry.cn-shanghai.aliyuncs.com/urlos4/svnserver:1.12.2 注:这里的urlos4为命名空间,registry.cn-shanghai.aliyuncs.com为阿里仓库线路的域名,请根据自己实际的替换


3、登录帐户

image-20200408152153893


4、填写镜像大小,执行以下命令可查看本地仓库中显示的镜像大小:

docker images

image-20201223163940445

image-20201223164121073

配置填写后,点击提交,保存到URLOS。


基于添加的镜像创建svnserver应用

1、到应用管理列表,点击右上角添加应用

image-20201223165009994


2、基本信息填写,如下: image-20201223165616418


3、切换到选项开关,设置如下:

image-20201223170951738


4、反向代理设置:

image-20201223171147737


5、应用市场设置:

image-20201223171220262


6、标签设置:

image-20201223190505073


7、开发者设置:

image-20201223172043917


8、扩展设置

image-20201223173326568


9、脚本设置:

image-20201223172622072

# 安装脚本
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、添加使用帮助

image-20201223173118755

按照上面的配置填写后,点击提交。


11、创建svnserver应用的模板 image-20201223173845513

image-20200414135207445

分别添加下面3个模版:

  • /data/svn/project/conf/svnserve.conf

  • /data/svn/project/conf/passwd

  • /data/svn/project/conf/authz

添加svnserve.conf模板

image-20200414135829160

image-20200414135840427

模板内容 :

[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模板 image-20200414140123226

image-20200414140132093

模板内容 :

[users]
admin = admin123

添加authz模板

image-20200414140658219

image-20201223182156544

模板内容:

[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、添加完模板后,在模板列表中点击右上角的管理扩展变量进入扩展变量列表 image-20200414140855479

image-20201223174631206

分别添加下面2个扩展变量:

  • sshPassword(ssh登录密码)
  • sshCaption(ssh设置提示)

添加扩展变量sshPassword

image-20200414141220312

添加扩展变量sshCaption image-20201223183414775

这样,svnserver应用创建完成。


安装svnserver应用并测试

1、在应用管理列表找到刚才新添加的svnserver应用,选择更多->创建服务

image-20201223175022989


2、创建服务填写如下:

image-20201223180457433

image-20201223175238319

按照上面的配置填写后,提交部署。


3、验证部署

部署完成后,使用ssh登录工具,能登入容器内部 image-20201223180828980

使用svn客户端checkout检测,能正常使用

image-20201223182621137

Copyright © 广州市万岁云计算有限公司 2020 all right reserved,powered by Gitbook文档最近一次修订时间: 2020-12-23 19:05:05

results matching ""

    No results matching ""