构buildPlay应用程序作为Docker镜像,重新映射端口

我试图将我的Pl​​ay应用程序构build到端口8080上的Docker容器中。 请求端口8080上的泊坞窗容器打我的播放应用程序。

我遇到麻烦了。 我想我可以通过将Docker端口8080映射到内部端口9000,但我无法弄清楚如何使用sbt插件来做到这一点。 我所能做的就是改变暴露的端口使用

dockerExposedPorts := Seq(8080) 

sbt-docker只build立docker镜像。 公开一个端口是正确的,但你仍然必须连接到主机networking。

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

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

你有两个select。 首先是使用默认端口9000启动游戏应用程序,运行容器时使用Docker端口映射将容器外部的端口8080redirect到容器内部的端口9000:

 docker run -p 8080:9000 yourimage 

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

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

完成后,更改dockerExposedPorts

 dockerExposedPorts := Seq(8080) 

注意,它仍然会在开发模式( activator run )下在端口9000上activator run