将容器的主机IP映射到虚拟主机的最佳方式是什么?

在我们的rails应用程序中,我们有一个数据库configuration文件,数据库主机被设置为MY-DB

在我们当前的环境中,我们简单地修改/ etc / hosts,使MY-DB映射到我们需要的任何IP地址(localhost for dev)。

1.1.1.1 MY-DB

我们正在用Docker容器化所有的服务,现在我想保持数据库configuration文件一致。 我如何告诉我的容器做这个映射? 我只是简单地复制一个/ etc / hosts到所需的映射到构build时的容器?

我使用的是一个典型的ruby容器,ruby:2.2.5。

为了开发的缘故,我find了docker.for.mac.localhost 解释 ,如果我直接在dbconfiguration文件中用docker.for.mac.localhostreplaceMY-DB ,它可以按需要工作,但是我想在Dockerland中做这个映射。

如果您在Mac上而不是在容器中运行数据库服务器,则可以将--add-hosts标志添加到docker run

在你的情况下,你可以使用

 --add-hosts MY_DB:`ipconfig getifaddr en0` 

这个命令是特定于Mac的,并且在主机是Linux的环境中不起作用。