从单回购单dockerhub自动构建dockerfile构建多个图像

问题描述 投票:1回答:2

我曾经在github上单一的Git仓库:

  • 一个Dockerfile它建立多个图像意味着被一起使用。 (行家构建产生战争文件和SQL文件通过从工件储存器然后下载;一个多级的构建然后创建与战争和与SQL数据纤薄MySQL的图像预加载纤薄的Tomcat图像)。
  • 使用“目标”指令,编译和运行从多级构建的图像集装箱码头工人,compose.yml文件。

这种发展过程中效果很好。但它迫使用户在他们的计算机上生成图像。我希望用户能够仅下载图像。该设置也应该使用dockerhub的自动生成,以保持图像是最新的。

我怎样才能将其设置为实现这一目标?什么命令(S)或文件(S)我给用户,允许他们下载图片,并运行容器?如果它是不可能的,我能做些什么,使之可能(分裂回购?copypaste的dockerfile?发布中间图像dockerhub并确保正确的建造顺序?不要使用dockerhub的自动构建?)

docker docker-compose dockerhub
2个回答
2
投票

要使用dockerhub's automated builds你需要每Dockerfile建立一个形象,有一个Dockerfile per repo。图像名称来自源库名称(与GitHub的组织/用户名作为搬运工图像用户名和GitHub库名称作为搬运工图像名称)。多级构建工作自动化生成,但只有一个图像每Dockerfile(生成最终图像)出版。

你可以建立图像在你的CI,甚至在本地计算机上,然后推到dockerhub。你只需要对dockerhub一个帐户,当您使用docker push command将在该帐户登录。做这件事时推有没有要任何映射到GitHub的回购协议,但你的形象命名应该以<dockerhub_user>/作为一种前缀开始(在https://docs.docker.com/docker-hub/repos/解释)。它的确定,如果他们在,你可以通过前推重新标记重命名一个不同的名称建立。这样,你也可以建立你喜欢的图片。

当你在dockerhub图片您可以使用表单image: <dockerhub_user>/<dockerhub_image_name>:<tag>只是指他们在泊坞窗,撰写文件。当用户确实docker-compose up图像将自动被拉动。


1
投票

下面是一些提示和链接,应有助于您的具体情况:

Automated builds是部署您的图像的便捷方式。

这部分是很容易的。您需要与泊坞枢纽和Github的账户。您可以免费注册这些帐户。

当您在码头工人集线器建立一个信息库,你可以将其链接到您的Github上库自动生成。

建议:

  • Split your services成单独Dockerfiles。理想情况下,你应该使用单独的存储库:泊坞撰写会拉在一起底。服务的部门也将有助于如果有人想例如实施云后台数据库实现他们的部署。
  • 不要数据库文件存储在容器内。 Containers should be ephemeral
  • 对于一个强大的设计,test your builds

泊坞枢纽自动化构建是非常灵活的使用build hooks的。

因为我还没有找到最好的文档这部分是有点棘手。它还如果你分割你的Dockerfile可能没有必要。

我已经成功地创建自动化的使用在hooks/build钩多个标签和目标,但阅读它看起来像你也应该能够使用hooks/post_build文档后建立。

你的钩子可以简单地构建正确的层和推标签泊坞枢纽

为了您的仓库应该是这样的:

#!/usr/bin/env bash

docker build --target lutece-mysql -t lutece/mysql .
docker push lutece/mysql

如果你最终使用hooks/build你可能需要建立最终目标的最后一步。

建议:

  • 如果需要多个标签的图像用钩子在hooks/post_push添加额外的标记。这样,每个标签应该链接的用户相同的图像。例如 #!/usr/bin/env bash docker tag lutece/tomcat:master lutece/tomcat:latest docker push lutece/tomcat:latest
  • 此外,您可以使用建立挂钩的东西像build date and git commit标记你的形象。

Deployment with Docker Compose

不幸的是我没有做这部分,所以我不能确定如何得到这个工作。

随着泊坞枢纽的仓库和码头工人的工作,compose.yml你的客户可能只需要在你的搬运工,compose.yml文件的目录运行docker-compose up。泊坞窗撰写应拉从泊坞枢纽的图像。

© www.soinside.com 2019 - 2024. All rights reserved.