阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用 Docker 简化 TeamCity 安装

145次阅读
没有评论

共计 2260 个字符,预计需要花费 6 分钟才能阅读完成。

JetBrains 出品的 TeamCity 是一款强大易用的持续集成(continuous integration)系统。它是一款商业产品,但对于小型项目和 FOSS 应用程序(免费和开源软件)有一项特殊的零费用许可证。尽管 TeamCity 的安装已经相对容易了,但通过使用 Docker,安装过程会更简便。

像许多其它的最新式的持续集成系统一样,TeamCity 采用了构建服务器和构建代理的概念。服务器负责管理和构建配置。实际的构建过程(编译、打包、部署等等)是由一个或多个代理执行的。通过个种方式,很容易实现代理的自动设置,整个设置过程中只需要很少的手动配置。

TeamCity 服务器只需要 Java。安装过程很简单。通过 Docker,安装会更简单。为此,我准备了一个专门的容器 ariya/centos6-teamcity-server。此容器的基本系统是 ariya/centos6-oracle-jre7,一个运行了 Oracle 官方 Java 7 的 CentOS 6.5 系统(更准确地说,到发稿为止是 JRE 1.7.0_65-b17)。

假定你有一个已经安装了 Docker 的系统(VPS 例如:Linode 或 DigitalOcean,Amazon EC2 实例,一个虚拟机或一部真正的计算机),安装 TeamCity 服务器就简单到只需要运行下列命令。注意,如果你在使用 OS X,如果你仅想试验本安装请使用 boot2docker(参看我之前发表的博客 Docker on OS X 了解更多细节)。

docker run -dt -name teamcity_server -p 8111:8111 ariya/centos6-teamcity-server

几分钟后,打开机器地址的 8111 端口,开始 TeamCity 服务器的 Web 配置(更多细节请阅读官方 TeamCity 文档),如下图所示。如果你的系统使用了 iptalbes,确保 8111 端口允许连接。注意,TeamCity 数据将存储在特殊的位置 /data/teamcity这是一个标准的 Docker 卷,应当允许简单挂载、备份和未来升级。

使用 Docker 简化 TeamCity 安装

服务器配置完成后,就应为此服务器指定构建代理(不然,什么也构建不了)。通过运行容器 ariya/centos-teamcity-agent,我们再次用 Docker 产生一个构建代理。为了让代理工作,我们需要为它指定服务器。运行下列命令:

docker run -e TEAMCITY_SERVER=http://buildserver:8111 \
-dt -p 9090:9090 ariya/centos6-teamcity-agent

如果你在 运行着服务器容器的同一台主机上运行它,你需要将它们连接(link)起来。

docker run -e TEAMCITY_SERVER=http://teamcity_server:8111 \
--link teamcity_server:teamcity_server -dt ariya/centos6-teamcity-agent

环境变量中的 TEAMCITY_SERVER 是必须的,需要指向你上一步启动的 TeamCity 服务器的本地实例。一旦你运行了这个容器,它会连接到所指定的服务器,下载代理 ZIP 文件并安装。第一次连接服务器后,构建代理通常需要花几分钟时间更新。如果一切工作正常,在你的 TeamCity 服务器 Web 页面的 Agent 标签项中,你将看到一个新的代理。授权代理,现在它准备接受任何构建工作了!

如果启动代理出现问题,(docker ps)没有显示运行的容器,重新运行它,但这次使用 -it 选项(interactive terminal 交互终端)代替 -dt。这将转存一些额外的调试信息,有助于解决问题。

注意,此代理容器也是基于带 Java 7 的 CentOS 6。通常这还不够,你可能需要其它的依赖项(不同的 SDK,编译器,库等等)。理想情况下,那些依赖项能自动解决,或基于不同系统容器,或通过正确的自动设置。更多细节,参考我之前发表的博客 Build Agent: Template vs Provisioning。

还有借口不用持续集成?我可不这么想!

CentOS 7 安装 Docker V1.0 http://www.linuxidc.com/Linux/2014-07/104768.htm

开源项目 Docker,Red Hat 新的虚拟化选择 http://www.linuxidc.com/Linux/2013-10/91051.htm

dockerlite: 轻量级 Linux 虚拟化 http://www.linuxidc.com/Linux/2013-07/87093.htm

Docker 的搭建 Gitlab CI 全过程详解 http://www.linuxidc.com/Linux/2013-12/93537.htm

Docker 和一个正常的虚拟机有何区别? http://www.linuxidc.com/Linux/2013-12/93740.htm

在 Docker 中使用 MySQL http://www.linuxidc.com/Linux/2014-01/95354.htm

Docker 将改变所有事情 http://www.linuxidc.com/Linux/2013-12/93998.htm

Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm

Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计2260字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中