从capistrano部署创builddocker集装箱

我在理解如何利用Docker的现有基础架构代码方面遇到了一些困难。

我有一个使用capistrano推出部署的Ruby on Rails应用程序。 我想用这个capistrano脚本创build一个新的docker图像。 我可以推出一个部署,然后使用部署到目录部署在现有的图像之上,说,精确(因为匹配我的目标操作系统)。

这是正确的方法,还是我错过了什么?

通常在Docker中,在容器中部署应用程序的首选方法是使用dockerfile ,它可以替代capistrano脚本的angular色,主要在容器上运行命令(安装软件包,执行git clone,启动服务和应用程序等) 。

您可以使用基本映像容器和要执行的命令列表定义dockerfile,然后通过以下方法构build您的容器:

docker build {{your_repository_containing_dockerfile}} 

因此,您可以将您的Capistrano脚本翻译成dockerfile,并用Docker部署replaceCapistrano部署。

@EightyEight

我们正在使用docker工人和jenkins进行部署。 我们保持我们的代码始终不在Docker中,直到我们想要发布和运行的时候。

您应该在要部署应用程序的所有服务器/实例上都有Docker Image。

您应该分两步完成部署。

1)在Capistrano工作,为你想要部署的应用程序的标签/分支build立一个包(tar或gz)。

2)有另外的工作要做以下步骤的实际部署:

i)将软件包推送到您想要部署应用程序的所有服务器上并解压该软件包。

ii)如果有任何容器已经在运行相同的应用程序并且运行具有相应容器和代码的容器,则停止。

例如docker run -d -p 8000:8000 -v / path / to / the tag:/ deployment / path / inside / docker –name(NameOfContainer)–env TERM = xterm accountid / imagename:version