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

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


还记得以前安装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等。 python

使用docker ps查看运行的容器:

经过csphere的管理界面,也能够查看相应的容器信息: linux


此外,也能够经过源码本身构建镜像(包括依赖),也能够选择将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安装、迁移更简单。

参考:
相关文章
相关标签/搜索