docker官方提供了docker-composer容器编排工具,很适合开发者在单机模式下对容器进行编排,本文采用docker-composer部署svn版本库。
本次实践环境
- 操作系统:Linux
- 需安装docker
- 需安装docker-composer
- 本地部署
如果需部署在申请的云主机上,那么需手动配置安全策略打开容器映射到云主机的端口(需参考云厂商的文档进行配置),不过这样存在安全隐患,最好的办法部署nginx容器做反向代理,外部访问时通过80端口转发。
本次在本地部署本地访问,所以不存在这些限制。
镜像信息
- 镜像名称:elleflorio/svn-server:ui
- 镜像来源:http://hub.docker.com
- 镜像特点:该镜像集成了svn+Apache+iF.SVNAdmin,可通过web界面管理用户和版本库。
部署前准备
- 运行
cd ~
,确保在家目录 - 运行
mkdir svn
创建svn目录,然后cd ./svn
打开svn目录 - 运行
mkdir svn_repo
和mkdir svn_config
创建两个文件夹 - 运行
cd svn_config
打开svn_config子目录,然后touch passwd
创建passwd文件并修改访问权限chmod 777 passwd
, - 运行
vim subversion-access-control
,输入以下内容按:wq
保存,运行chmod 777 subversion-access-control
修改访问权限
[groups]
[/]
*=r
svn_repo:存放svn版本库
svn_config: 存放svn配置
passwd:svn中用户配置
subversion-access-control:svn的访问权限配置
这些文件、文件夹后面编写docker-composer.yml文件时要挂载到容器,实现数据持久化,进行配置时无需进入容器
docker-composer的yml文件编写
经过前面的部署前准备,本次部署需要的文件,文件夹都已准备完成。接下来,编写docker-composer的编排文件。
首先运行cd ~
返回家目录,然后运行vim docker-compose.yml
,输入以下内容:
svn:
image: elleflorio/svn-server:ui
restart: always # 容器退出时重启策略,always表示总是重启
volumes:
- ./svn/svn_repo/:/home/svn/ # 挂载存放版本的文件夹
- ./svn/svn_config/:/etc/subversion/ # 挂载存放svn配置的文件夹(passwd、subversion-access-control)
- /etc/localtime:/etc/localtime:ro # 将主机的时间同步到容器
ports:
- "80:80" # 端口映射,主机:容器
docker-composer启动容器
经过前面的部署前准备、docker-composer的yml文件编写,接下来到了docker-composer启动容器的时候了。
- 运行
cd ~
确保在家目录(因为我们的docker-composer.yml、还有其svn文件都是在家目录下) - 运行
docker-compose up -d
启动容器 - 运行
docker-compose ps
查看容器状态
最后...
等容器状态为Up
时,在浏览器中访问
http://localhost//svnadmin/repositorylist.php
弹出配置界面(第一次运行需配置),按下图填写就OK!
最后submit后会弹出admin的默认账号,按提示登录后,就可以创建版本、创建用户了。附登录后界面图一张:
登录后界面 欢迎关注我的微信公众号
网友评论