【问题标题】:Embed code in docker container or mount it as a volume?在 docker 容器中嵌入代码或将其挂载为卷?
【发布时间】:2014-10-19 06:37:43
【问题描述】:

我是 docker 的新用户,我即将在我的生产环境中从 VM 迁移到容器。 但后来,我突然意识到,对我的开发和 QA 环境非常有效的东西并不适合生产。

在我的 dev 和 qa 中,我将我的版本化项目文件夹挂载到一个 python/php(命名它)容器中,我认为这个容器是我的代码的“运行服务”。这使我免于拥有巨大的容器,因为当我更改代码(git commit 或其他)时容器历史不会改变。

在生产中,理想的情况是我将拥有干净的独立容器,其中包含我的代码,而不是像我在开发中那样安装。

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

【问题讨论】:

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

标签: docker linux-containers


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    确实,您可以通过在运行时添加一个名为 -v 的附加参数来做到这一点

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

    【讨论】:

      猜你喜欢
      • 2017-07-21
      • 2021-09-17
      • 2017-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      相关资源
      最近更新 更多