加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – Docker Akka-Http应用程序端点无法访问

发布时间:2020-12-16 18:24:24 所属栏目:安全 来源:网络整理
导读:我有一个非常基本的Akka-http应用程序,它基本上不仅仅是一个Hello-world设置 – 我已经定义了一个端点并简单地将它绑定到“localhost”和端口“8080”: object Main extends App with Routes { private implicit val system = ActorSystem() protected impl
我有一个非常基本的Akka-http应用程序,它基本上不仅仅是一个Hello-world设置 – 我已经定义了一个端点并简单地将它绑定到“localhost”和端口“8080”:

object Main extends App with Routes {
  private implicit val system = ActorSystem()
  protected implicit val executor: ExecutionContext = system.dispatcher
  protected implicit val materializer: ActorMaterializer = ActorMaterializer()
  protected val log: LoggingAdapter = Logging( system,getClass )

  log.info( "starting server" )
  Http().bindAndHandle( logRequestResult("log",Logging.InfoLevel)( allRoutes ),"localhost",8080 )
  log.info( "server started,awaiting requests.." )
}

(allRoutes混合在via Routes中,但只是一个虚拟端点,将一个简单的case类序列化为JSON响应)

如果我使用sbt启动它,那么端点工作正常(例如http://localhost:8080/colour/red).

我现在正在尝试将其打包到Docker容器中来运行它 – 我已经读过像http://yeghishe.github.io/2015/06/24/running-akka-applications.html这样的东西并添加了sbt-native-package插件(http://www.scala-sbt.org/sbt-native-packager/formats/docker.html#customize).

现在我运行sbt docker:publishLocal

我可以看到已创建docker镜像:

REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
sample-rest-api        0.0.1               3c6ee44985b4        9 hours ago         714.4 MB

如果我现在开始我的图像,映射8080端口如下:

docker run -p 8080:8080 sample-rest-api:0.0.1

我看到我通常在启动时看到的日志输出,所以它看起来已经开始正常,但是,如果我然后尝试访问与之前相同的URL我现在得到响应

“加载页面时出错:连接已重置”

如果我检查docker ps,我看到图像正在运行,并且端口按预期映射:

CONTAINER ID        IMAGE                   COMMAND                 CREATED              STATUS              PORTS                    NAMES
27848729a425        sample-rest-api:0.0.1   "bin/sample-rest-api"   About a minute ago   Up About a minute   0.0.0.0:8080->8080/tcp   furious_heisenberg

我在Ubuntu 16.04上运行 – 任何人都有任何想法?

解决方法

尝试将“localhost”更改为0.0.0.0 在http.bindAndHandle中

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读