【发布时间】:2017-07-10 08:54:16
【问题描述】:
我正在使用 sbt-native-packager 的 docker 插件来构建 Docker 镜像。我希望我的图像在 /etc/hosts 中有一个额外的条目。
我尝试了以下方法:
dockerCommands in Docker := dockerCommands.value.flatMap {
case cmd@Cmd("FROM", _) =>
List(Cmd("FROM", "anapsix/alpine-java")) ++ List(
Cmd("ENV", "JAVA_MIN_MEM", "1024m"),
Cmd("RUN", "echo 8.8.8.8 foo >> /etc/hosts")
)
}
不幸的是,它似乎不起作用。当我基于这个镜像启动一个容器时,/etc/hosts 没有额外的条目。
看起来它实际上正在写入文件,因为我尝试了以下操作:
....
Cmd("RUN", "echo 8.8.8.8 foo >> /etc/hosts; ping -c 4 foo")
....
我得到以下输出:
[info] Step 9/15 : RUN echo 8.8.8.8 foo >> /etc/hosts; ping -c 4 foo
[info] ---> Running in b6d7ba25f96f
[info] PING foo (8.8.8.8): 56 data bytes
[info] 64 bytes from 8.8.8.8: seq=0 ttl=37 time=5.521 ms
[info] 64 bytes from 8.8.8.8: seq=1 ttl=37 time=3.188 ms
[info] 64 bytes from 8.8.8.8: seq=2 ttl=37 time=6.012 ms
[info] 64 bytes from 8.8.8.8: seq=3 ttl=37 time=4.192 ms
所以看起来修改后的 /etc/hosts 被覆盖了!
这样做的正确方法是什么?
【问题讨论】:
标签: docker hosts sbt-native-packager