将Play App构建为Docker镜像,重新映射端口

时间:2015-11-02 22:41:52

标签: docker playframework-2.0 sbt typesafe-activator

我正在尝试将我的Pl​​ay应用程序构建到端口8080上暴露的docker容器中。即。对端口8080上的docker容器的请求命中了我的播放应用程序。

我在做这件事时遇到了麻烦。我想我可以通过将Docker端口8080映射到内部端口9000来实现,但我无法弄清楚如何使用sbt插件执行此操作。我所能做的就是使用

更改暴露的端口
dockerExposedPorts := Seq(8080)

2 个答案:

答案 0 :(得分:2)

sbt-docker仅构建docker镜像。公开端口是正确的,但您仍然必须将其连接到主机网络。

为此你必须启动容器并提供正确的映射。

docker run -p 9000:8080 ... yourImage ...

答案 1 :(得分:2)

您有两种选择。第一个是使用默认端口9000启动播放应用程序,在运行容器时使用Docker端口映射从容器外部的端口8080重定向到容器内的端口9000:

docker run -p 8080:9000 yourimage

选项二是编辑application.conf并将生产端口更改为8080:

# production
play.server.http.port = "8080"

完成后,请更改dockerExposedPorts

dockerExposedPorts := Seq(8080)

请注意,它仍将在开发模式(activator run)的端口9000上运行。