我正在尝试将我的Play应用程序构建到端口8080上暴露的docker容器中。即。对端口8080上的docker容器的请求命中了我的播放应用程序。
我在做这件事时遇到了麻烦。我想我可以通过将Docker端口8080映射到内部端口9000来实现,但我无法弄清楚如何使用sbt插件执行此操作。我所能做的就是使用
更改暴露的端口dockerExposedPorts := Seq(8080)
答案 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上运行。