码迷,mamicode.com
首页 > 其他好文 > 详细

docker-reviewboard(让reviewboard安装、迁移更简单)

时间:2015-06-30 20:33:26      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

ReviewBoard是个开源的、可扩展的、友好的基于Web的代码评审工具,是用Python框架Django开发的。


还记得之前安装ReviewBoard时折腾了好久
ReviewBoard官方文档很完善,官网上有详细的 安装指南(每个环境:linux、windows、MacOSX)
当时的安装环境是linux,所需要的大多软件理论上可以通过yum/apt-get或者easy-install安装
但是最初安装的时候,是在公司内网,无法连接到外网,同时yum源不完善、也无法使用easy-install来安装与python相关的包
这样,许多软件都需要手动安装,安装过程繁琐、复杂,安装时的依赖解决、错误定位和解决花费了大量的时间
尤其是安装ReviewBoard需要解决的依赖甚多,安装pysvn时需要一一解决的错误甚多
这样,首次安装就花费了大约一周的时间

而这样的安装,无法迁移,要在其他环境安装还得重新安装
后来虽多次演练,不断积累了安装经验,但整个ReviewBoard环境一步步安装下来至少也需要一天
这两年Docker风生水起,而它使得ReviewBoard安装、迁移等变得更简单。

ReviewBoard官网上docker-reviewboard页面:
https://www.reviewboard.org/store/products/docker-reviewboard/
GitHub上docker-reviewboard的源码:
DockerHub上reviewboard的镜像:

查看GitHub或DockerHub的相关页面,有详细的使用说明。
docker-reviewboard:
Dockerized化的ReviewBoard。
这个容器遵循Docker最佳实践,并且除了reviewboard运行在uwsgi的服务,不包括sshd、supervisor、apache2或其他服务。

它需要PostgreSQL和memcached,你可以使用Docker化的版本,也可以使用外部版本(例如安装在主机上或第三方机器上)。

使用所有docker化的依赖快速启动、运行docker化的reviewboard,在docker容器中持久化数据。
# Install postgres
docker run -d --name rb-postgres -e POSTGRES_USER=reviewboard postgres
# Install memcached
docker run --name rb-memcached -d -p 11211 sylvainlasnier/memcached
# Create a data container for reviewboard with ssh credentials and media.
docker run -v /.ssh -v /media --name rb-data busybox true
# Run reviewboard
docker run -it --link rb-postgres:pg --link rb-memcached:memcached --volumes-from rb-data -p 8000:8000 ikatson/reviewboard

在docker命令执行完成后,通过http://ip:8000/便可访问reviewboard,管理员帐号是admin:admin,登录之后可以修改管理员密码,设置SMTP等。技术分享

使用docker ps查看运行的容器:
技术分享

通过csphere的管理界面,也可以查看相应的容器信息:

技术分享


此外,也可以通过源码自己构建镜像(包括依赖),也可以选择将PostgreSQL、memcached安装在主机上。

reviewboard容器的挂载点和环境变量:
这个容器有两个Volum挂载点:
  • /.ssh:reviewboard存储ssh key的默认路径
  • /media:reviewboard存储上传的媒介的默认路径
这个容器接收如下环境变量:
  • PGHOST:postgre的主机,默认是PG_PORT_5432_TCP_ADDR的值,由连接的容器pg提供。
  • PGPORT:postgre的端口,默认是PG_PORT_5432_TCP_PORT的值,由连接的容器pg提供,或者是5432,或者是空。
  • PGUSER:postgre的用户,默认是reviewboard。
  • PGDB:postgre数据库,默认是reviewboard。
  • PGPASSWORD:postgre密码,默认是reviewboard。
  • MEMCACHED:mencached地址,以host:port的形式,默认的值来着连接的mencached容器。
  • DOMAIN:默认是localhost。
  • DEBUG:如果设置,django服务将以debug模式运行。
此外,Docker镜像或容器可以持久化(docker export用于持久化容器,docker save用于持久化镜像)到文件系统中;
同时可以使用docker import导入持久化的容器,可以使用docker load载入持久化的镜像;
这使得镜像或容器的迁移非常方便。
这样docker化的reviewboard迁移变得更简单。

总之,docker化的reviewboard让reviewboard安装、迁移更简单。

参考:

docker-reviewboard(让reviewboard安装、迁移更简单)

标签:

原文地址:http://my.oschina.net/donhui/blog/472644

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!