SBTを使用して簡単なスカラアプリケーション(akka-http RESTサービス)を作成しました。Mac OSのdockerでRESTアプリケーションを実行しているときに空の応答
これは、アプリケーションのメインクラスです:
object UserApiWebService extends App {
override def main(args: Array[String]): Unit = {
implicit val system: ActorSystem = ActorSystem("user-api-system")
implicit val executionContext: ExecutionContext = system.dispatcher
implicit val materializer: ActorMaterializer = ActorMaterializer()
val userApiRoute = new UserApiRoute
val userApiRoutes = new UserApiRoutes(userApiRoute)
val config = ConfigFactory.load()
val host = config.getString("http.host")
val port = config.getInt("http.port")
println(s"Starting server on $host:$port..")
Http().bindAndHandle(userApiRoutes.routes, host, port)
println(s"Server started on $host:$port..") }
}
と私は地元のランニングにsbt run
すべての作品をアプリケーションを実行すると、私のapplication.confはhttp.host
= "127.0.0.1" と= 9000 http.port
が含まれていますすばらしいです。
私はドッカーを試して、Akkaアプリケーション用のコンテナを作成することに決めました。 私はsbt DockerPluginを使用していて、コマンドsbt dockerを実行しています.publishDockerはローカルマシン上にdockerイメージを作成します。
は、だから私は、コマンドdocker run -p 9000:9000 --name user-api user-api:0.1.0-SNAPSHOT
を使用してドッキングウィンドウコンテナを始めていると私は、コンテナが正しく実行されていることを見ることができます。 API-RESTアプリケーションが正しく動作コマンドを使用している場合、私はチェックすると
は:
curl -XGET 127.0.0.1:9000/user/34
は私が応答としてcurl: (52) Empty reply from server
取得します。
docker exec -it a556b8846340 /bin/bash
を使用してコンテナに入力した後に同じコマンドを試しても、正しい応答が得られます。
私はmacOS 10.12.6とドッカーのバージョン17.09.1-ceを使用してMacで作業しています。
誰かが私を助けることができますか?
に更新する必要があり、ローカルホスト上でも動作しますが、おかげ –
@albertoadamiはいいですね! – chenrui