dockerhub使用单个dockerfile构建多个映像从单个回购自动构建
我在github上有一个git存储库,其中包含:dockerhub使用单个dockerfile构建多个映像从单个回购自动构建,docker,docker-compose,dockerhub,Docker,Docker Compose,Dockerhub,我在github上有一个git存储库,其中包含: 一个Dockerfile,用于构建多个要一起使用的图像。(maven构建通过从工件存储库下载生成war文件和sql文件;多阶段构建然后创建带有war的细长tomcat映像和预加载sql数据的细长mysql映像) docker-compose.yml文件,它使用“target”指令在多阶段构建的映像上构建和运行容器 这在开发过程中效果很好。但它迫使用户在他们的计算机上构建图像。我希望用户只能下载图片。安装程序还应该使用dockerhub的自动构
- 一个Dockerfile,用于构建多个要一起使用的图像。(maven构建通过从工件存储库下载生成war文件和sql文件;多阶段构建然后创建带有war的细长tomcat映像和预加载sql数据的细长mysql映像)
- docker-compose.yml文件,它使用“target”指令在多阶段构建的映像上构建和运行容器
/
开头,作为一种前缀(在中解释)。如果它们是以不同的名称构建的,这没关系,因为您可以在按下之前通过重新标记来重命名它们。这样,你也可以建立你喜欢的图像
当您在dockerhub中有图像时,您可以使用
image:/:
的格式在docker compose文件中引用它们。当用户进行docker compose up
时,将自动提取图像。以下是一些提示和链接,可以帮助您解决此问题:
是部署映像的方便方法。
这部分很简单。您将需要Docker Hub和Github的帐户。你可以免费注册这些帐户
在Docker Hub上创建存储库时,您可以将其链接到Github存储库以自动化构建
建议:
- 分为单独的Dockerfiles。理想情况下,您应该使用单独的存储库:Docker Compose将在最后将它们放在一起。如果任何人想要为其部署实施云数据库后端,服务部门也将提供帮助
- 不要将数据库文件存储在容器中李>
- 对于稳健的设计
hooks/build
上使用一个钩子成功地创建了具有多个标记和目标的自动构建,但是在阅读文档之后,您似乎也能够使用hooks/post_-build
您的钩子可以简单地构建正确的层并将标签推送到Docker Hub
对于您的存储库,应该如下所示:
#!/usr/bin/env bash
docker build --target lutece-mysql -t lutece/mysql .
docker push lutece/mysql
如果您最终使用了hooks/build
,那么您可能需要构建最终目标作为最后一步
建议:
- 如果一幅图像需要多个标签,请使用
上的钩子添加其他标签。这样,每个标签都应该将用户链接到同一个图像。e、 ghooks/post\u push
#!/usr/bin/env bash docker tag lutece/tomcat:master lutece/tomcat:latest docker push lutece/tomcat:latest
- 此外,您还可以使用构建挂钩为图像添加标签,例如
使用Docker Hub中的存储库和一个工作的Docker-compose.yml,您的客户端可能只需要在包含Docker-compose.yml文件的目录中运行
Docker compose up
。Docker Compose应该从Docker Hub中提取图像。如果它是公共的(我猜如果您正在查看Docker Hub,它是公共的),如果您可以链接到Docker文件,那就太棒了谢谢您的评论。Dockerfile和docker-compose.yml位于感谢分享。快速浏览一下,我想您可以将Dockerfile拆分为一个用于web应用程序的文件和一个用于db的文件(如果需要)。