如何设置docker映像以从存储库中动态提取应用程序代码?

如何设置docker映像以从存储库中动态提取应用程序代码?,docker,docker-compose,dockerfile,Docker,Docker Compose,Dockerfile,我现在正在使用docker cloud。我正在尝试使用docker和docker compose来为相同类型的多个应用程序提取应用程序代码,但只是简单地更改每个应用程序从哪个存储库提取的代码,从而找出一个从开发到生产的工作流。我理解装入卷的概念,但所有示例都显示了源代码与dockerfile和docker compose文件在同一个repo中。我希望本例中的应用程序代码来自远程动态回购。我会在docker映像中设置环境变量吗?如果是,怎么做? 任何示例或指向工作流示例的链接都值得欣赏。如果操作正

我现在正在使用docker cloud。我正在尝试使用docker和docker compose来为相同类型的多个应用程序提取应用程序代码,但只是简单地更改每个应用程序从哪个存储库提取的代码,从而找出一个从开发到生产的工作流。我理解装入卷的概念,但所有示例都显示了源代码与dockerfile和docker compose文件在同一个repo中。我希望本例中的应用程序代码来自远程动态回购。我会在docker映像中设置环境变量吗?如果是,怎么做? 任何示例或指向工作流示例的链接都值得欣赏。

如果操作正确,“烘焙”到Docker映像中的代码应该是不可变的,并且在运行时唯一应该更改的是可配置参数,如环境变量(例如,设置应用程序将侦听的端口)

理想情况下,您应该将代码烘焙到图像中。否则,您首先会失去使用Docker的许多好处。

问题是。。 。。您的用例与最佳实践不匹配。您希望图像中不嵌入任何代码,而是在每次更新时获取。如果您浏览,您会发现许多名为service:version的图像。这是Docker的优点之一,它提供相同服务的不同版本。如果您希望始终获得最新的代码,您的工作流可能会有一些缺点

一个解决办法是
,尤其是当您的代码版本已连接到。或的任何工具。

我应该补充一点,如果您需要部署新代码,您应该部署一个全新的映像。您的构建/部署管道应该相应地适应这一点。