推送图片与构建系统本身,docker

时间:2017-01-13 23:13:02

标签: jenkins docker continuous-integration continuous-deployment

我正在构建许多我希望在docker容器中的远程服务器上运行的应用程序。想象一下,我已经制作了一个'foo'项目,并为此编写了Dockerfile。我在我的localhost上构建此映像并在容器中运行它。一切正常,我想在远程机器上运行具有相同图像的容器。现在我有下一个方法:

  1. 我可以在dockerhub上发布它,但图像不小,我不想要 每次图像更改时等待(我做了一些修复)。所以这是 对我来说不是一个好选择。
  2. 我可以在本地创建私人服务器         我的生产服务器所在的网络。这种方式好多了,         因为连接速度很快,这是我的独立回购。         但是为docker设置私有存储库真的很困难         因为https。您还需要为每个守护进程添加--insecure。         你必须使用docker client,在你自己的系统上构建,标记它,         登录,然后推送。步骤太多......
  3. 我发现了另一种方式。我存档     我在tar.gz中使用dockerfile的应用程序,将其上传到远程服务器上     (nexus 3,原始存储库)然后配置Jenkins下载     这个存档和运行docker build命令。这也不是很方便,我必须每次为每个图像创建作业,作业是相同的但是网址和名称是不同的。我也用jenkins运行容器,这是对的还是我使用像kubernet这样的东西?
  4. 您能否与您分享您如何解决上述问题?我这样做还是不好的做法?

1 个答案:

答案 0 :(得分:1)

将代码放在git服务器,github,stash等中,让jenkins在代码发生变化时进行检测,构建它,然后将其部署到服务器,并将其上传到nexus。

您可以为图片命名,例如version- {auto-incrementmentedNumber},将其设置为变量,然后在上载时使用相同的变量命名存档。