URLOS实战进阶—制作svnserver应用

URLOS实战进阶—制作svnserver应用

1、制作svnserver镜像

1.1.使用ssh登录宿主机器,创建Dockerfile文件并填充以下内容

 From alpine:3.9
 ENV TIME_ZONE Asiz/Shanghai
 RUN sed -i 's@dl-cdn.alpinelinux.org@mirrors.aliyun.com@' /etc/apk/repositories \
  && apk update && apk add --no-cache openssh-server \
  && sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config \
  && ssh-keygen -t rsa -P "" -f /etc/ssh/ssh_host_rsa_key \
  && ssh-keygen -t ecdsa -P "" -f /etc/ssh/ssh_host_ecdsa_key \
  && ssh-keygen -t ed25519 -P "" -f /etc/ssh/ssh_host_ed25519_key \
  && apk add subversion && rm -rf /var/cache/apk/* \
  && test -d /data/svn || mkdir -p /data/svn && chmod -R 777 /data/svn
 WORKDIR /data/svn
 EXPOSE 3690
 CMD [ "/usr/bin/svnserve", "--daemon", "--foreground", "--root", "/data/svn" ]

1.2.执行下面的命令,生成镜像

 docker build -t urlos4/svnserver:latest-alpine3.9 .

1.3.运行镜像并进入容器

 docker run -itd --name svnserver001 -p 3690:3690 urlos4/svnserver:latest-alpine3.9
 docker exec -it svnserver001 sh

1.4.创建project仓库,设置project的相关配置

  svnadmin create project
  vi /data/svn/project/conf/svnserve.conf
  ### 需要设置内容如下
 anon-access = read
 auth-access = write
 password-db = passwd
 authz-db = authz
 realm = /data/svn/project
 ## 增加svn账户和密码
 vi /data/svn/project/conf/passwd
 ## 内容如下
 admin=admin123
 ## 设置账户的权限
 vi /data/svn/project/conf/authz
 ## 内容如下
 [/]
 admin = rw

1.5.使用svn客户端登录,检查是否正常使用。地址svn://ip/project

1.6.测试无误后,将镜像上传到docker云端

 docker login #已登录可忽略
 docker push urlos4/svnserver:latest-alpine3.9


2、基于URLOS制作svnserver应用

2.1.登录URLOS,添加镜像。如图:

2.2.添加svnserver应用,如图:

点击提交,保存应用数据


3、创建svnserver应用的模板
3.1.在应用列表中,找到svnserver应用,在更多操作按钮下选择管理模板,添加以下三个模板
/data/svn/project/conf/svnserve.conf
/data/svn/project/conf/passwd
/data/svn/project/conf/authz

3.2.svnserve.conf模板设置,如图:

点击提交,保存模板数据。

3.3.passwd模板设置,如图:

点击提交,保存模板数据

3.4.authz模板设置,如图:

点击提交,保存模板数据


4、创建svnserver应用的扩展变量

4.1.点击管理扩展变量,进入扩展变量列表,如图:

4.2.添加扩展变量sshPassword,ssh登录密码。如图:

点击提交,保存数据。

4.3.添加扩展变量sshCaption,ssh设置提示。如图:

点击提交,保存数据。


5、安装svnserver应用并测试

点击提交,URLOS自动部署。

部署完成后,使用ssh登录工具,检测能否登入容器内部;使用svn客户端链接svnserver服务,检测是否可正常使用。如图: