同志们!我有一个来自AKKA-HTTP示例的小服务。
import ch.megard.akka.http.cors.scaladsl.CorsDirectives._
object Server extends App{
val route = cors() {
path("hello") {
get {
complete(HttpEntity(ContentTypes.`text/html(UTF-8)`, "<h1>Привет ёпта</h1>"))
}
}
}
val routes = cors() {
concat(route, getUser, createUser, addMessage, getQueue, test, test2)
}
val bindingFuture = Http().newServerAt("localhost", 8080).bind(routes)
}
对于CORS i,创建文件resourses/application.conf:
akka-http-cors {
allowed-origins = "*"
allowed-methods = ["GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS"]
}
当我在intellij idea中运行一个项目时,路径工作正常:
但如果我在Docker中运行项目,路由就不想工作了。
Postman 出错:
以下是在所有位置关闭项目时出现的错误:第一次
如何正确配置应用程序的.conf文件,使应用程序接受第三方请求?或者错误隐藏在其他地方?请告诉我!我已经想了两天了。
UPD:文件停靠文件:
FROM openjdk:8-jre-alpine
WORKDIR /opt/docker
ADD --chown=daemon:daemon opt /opt
USER daemon
ENTRYPOINT ["/opt/docker/bin/servertelesupp"]
CMD []
GitHub上的项目:https://github.com/MinorityMeaning/ServerTeleSupp
2条答案
按热度按时间nr7wwzry1#
变更
Http().newServerAt("0.0.0.0", 8080).bind(routes)
至
Http().newServerAt("0.0.0.0", 8080).bind(routes)
个通过绑定到docker内部的
localhost
,您将无法将流量从外部路由到它。dced5bon2#
您使用的
-p
标志的值是什么?如果服务器在Docker中使用8080端口,它应该是8080:8080
;如果服务器使用80端口,它应该是8080:80
(依此类推)。另外,请确保该端口在Docker中确实是空闲的。PS:我的声望很低,无法添加评论。