如何使用docker进行部署和开发?

假设我有一个Python Web应用程序。

我可以创builddocker文件来安装所有依赖项。 但之后(或之前,如果我有点要求)我有两个不同的目标。

对于部署,我可以通过ssh或tarballs从git下载所有的源代码,这是可行的。

但是对于一个开发人员来说,这是行不通的。 然后我需要在实际的源代码上工作。 我知道我可以“镜像”任何文件夹/文件从主机到docker集装箱。 那么好吧,我可以删除所有的源代码,这是图像生成时下载的,并“镜像”在开发者机器中存在的当前源代码。 但是,如果开发者机器没有使用git clone下载任何源代码,它将不起作用。 那么该怎么办? 我的意思是除了显而易见的 – 克隆开发机器上的所有回购,然后“镜像”它?

那么,使用docker的正确方式不仅是部署,还是为了开发呢?

向开发人员提供存储库的副本不是docker的责任。 许多人以另一种方式做 – 你把Dockerfile或脚本拉(或build立)和运行你的容器到你的项目的来源。

在开发案例中,我只是使用docker的-v选项将当前工作副本安装到容器中众所周知的位置,并提供一个小的包装器shell脚本,可以自动启动容器中的应用程序。