在docker容器中嵌入代码还是将其作为卷装载?

在docker容器中嵌入代码还是将其作为卷装载?,docker,linux-containers,Docker,Linux Containers,我是docker的新用户,我将在我的生产环境中从VM迁移到容器。 但后来,我突然意识到,在我的开发和质量保证环境中完美运行的东西并不适合生产 在我的DEV和QA中,我将版本化的项目文件夹安装到Python /PHP(名称为IT)容器中,并将该容器视为我的代码的“运行服务”。这使我免于拥有巨大的容器,因为当我更改代码(git commit或else)时,容器历史不会更改 在生产环境中,理想的情况是,我将拥有干净的自包含容器,其中包含我的代码,而不是像在dev中那样安装 那么,我弄错了吗?你是怎么做

我是docker的新用户,我将在我的生产环境中从VM迁移到容器。 但后来,我突然意识到,在我的开发和质量保证环境中完美运行的东西并不适合生产

在我的DEV和QA中,我将版本化的项目文件夹安装到Python /PHP(名称为IT)容器中,并将该容器视为我的代码的“运行服务”。这使我免于拥有巨大的容器,因为当我更改代码(git commit或else)时,容器历史不会更改

在生产环境中,理想的情况是,我将拥有干净的自包含容器,其中包含我的代码,而不是像在dev中那样安装

那么,我弄错了吗?你是怎么做到的?
从dev到prod是否使用相同的容器?

我在开发环境中也使用相同的容器。我有一个生产Dockerfile,用于添加项目文件夹,然后对其运行所有测试。由于开发容器和生产容器之间的唯一区别在于将代码添加到容器中的时间,而不是代码或设置,因此它们具有相同的行为。

实际上,您可以在运行时添加一个名为-v的附加参数来实现这一点


sudo docker run-i-t-v/home/ubuntu/my_code:/home/mydocker/my_code ubuntu/my_docker/bin/bash

我遇到了同样的考虑,并采取了类似的方法。我有一个包含所有库、包等的“基本”映像,从中我创建了一个-dev和一个-prod变体。开发人员希望将代码装入内部,Prod在重新启动时使用git clone或git pull。似乎有效。