Docker容器依赖于其他容器中的文件

时间:2017-05-29 18:21:02

标签: docker containers docker-compose

我有单一的应用程序,我试图容器化。 foler结构是这样的:

--app
  |
  |-file.py <-has a variable foo that is passed in

--configs
  |
  |-variables.py <- contains foo variable

现在,我将应用程序放在容器中,将容器放在容器中。当我尝试启动应用程序容器时,它会失败,因为它依赖于配置容器变量。

我做错了什么?我应该如何处理这个问题。应用程序和配置现在应该放在一个大容器中吗?

我以为docker-compose可以解决这个问题。想法?

2 个答案:

答案 0 :(得分:1)

variables.py文件可以是({in)由app容器访问的卷,该容器从config容器导入--volumes-from config选项到docker run。使用Docker Compose,您将使用volumes_from指令。

答案 1 :(得分:-1)

不太推荐的方式 -

  1. 首先运行配置容器,它将拥有自己的docker.sock
  2. 您可以通过-v "/var/run/docker.sock:/var/run/docker.sock"将上述Docker Socket挂载到第一个应用容器中,这将让App容器访问Config容器,但我认为这需要特权访问。
  3. 这与Docker概念中的Docker类似。
  4. 您还可以通过在HTTP上提供foo变量来考虑应用程序的设计更改,这将导致更简单的解决方案。您可以在Python中使用简单的Web服务器和urllib3模块,以获得一个简单的解决方案,通过内部Docker Networking为变量提供服务。