docker - 如何构建我的 Docker 项目以便于部署?

标签 docker continuous-integration docker-compose dockerhub

现在,我的应用程序的多个组件位于同一个文件夹中,并与 docker-compose 链接在一起 enter image description here

这在开发中非常有效,但当我想推向生产时,它有点模糊。如果我保留这个结构,我不能只使用 dockerhub 来托管我的图像,因为链接它们的 docker-compose 将丢失。如果我使用 git 来拉取我的 docker-compose,那么 dockerhub 的意义何在?为什么不直接克隆我的整个存储库并每次运行docker-compose up

我也可以将每个组件单独存储在单独的 github 存储库中,当推送到 master 时将它们推送到 dockerhub。然后,只需将它们从集线器与 dockercompose 组合起来即可。这似乎也不太理想,因为必须克隆并推送到几个不同的存储库才能做出影响系统的更改。

你是怎么做到的?

最佳答案

我有两部分:源代码和配置文件(docker 文件、docker-compose 文件...)

我将 Dockerfile 和 docker-compose 放在与您类似的结构的文件夹中,并将其推送到 git 存储库。对于源代码(和其他数据),我必须手动管理它,使用单独的 git 存储库,以便源代码在每次需要更新时进行推送和拉取。

小心生产服务器,只更新一小部分而不是整个服务器。

关于docker - 如何构建我的 Docker 项目以便于部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36901706/

相关文章:

mysql - 如何与本地系统 apache 一起运行 docker apache?

django - Docker中的Django微服务

docker - docker 无法找到文件

sql-server - 将数据库更改推送到我的 SQL Azure 数据库

Jenkins 安装 - 尽管主目录存在且可写,但无法创建主目录

elasticsearch - boot2docker在本地主机上访问elasticsearch

laravel - Docker编写丢失的文件

Jenkins重启错误,启动Jenkins目录名: extra operand `/proc

linux - 为什么我的端口没有暴露?包括 netstat 输出

c - 如何在执行chaincode的docker中添加额外的C语言库编程环境?