docker中运行的akka​​-http应用程序

我有一个AKK – http应用程序在当地正常工作,我有一些问题“dockerizing”的应用程序。 我通过Dockerfile构buildDocker镜像,并使用docker-entrypoint来执行java -jar命令。 当我第一次访问正在运行的docker集装箱的应用程序不运行,虽然如果我访问容器,手动执行java -jar命令应用程序启动罚款。 如果我执行下面的命令(在容器内),应用程序也可以正常启动:

bash -xe docker-entrypoint.sh 

看下面我的Dockerfile

 FROM qa.stratio.com/stratio/ubuntu-base:16.04 MAINTAINER stratio ARG VERSION RUN apt-get update && apt-get install -y screen COPY target/khermes-${VERSION}-allinone.jar /khermes.jar COPY docker/docker-entrypoint.sh / COPY src/main/resources/application.conf / EXPOSE 8080 ENTRYPOINT ["/docker-entrypoint.sh"] 

另请参阅下面我的docker-entrypoint.sh:

 #!/bin/bash -xe java -jar -Dkhermes.client=false -Dakka.remote.hostname=localhost - Dakka.remote.netty.tcp.port=2553 -Dakka.cluster.seed- nodes.0=akka.tcp://khermes@localhost:2552 /khermes.jar tail -f /dev/null 

有没有人有一个想法,当我运行容器时,为什么我的应用程序被杀害?

我build议使用SBT Native Packager 。 我的build.scala看起来像这样

 import com.typesafe.sbt.packager.archetypes.JavaAppPackaging import com.typesafe.sbt.packager.docker.{Cmd, DockerPlugin} import com.typesafe.sbt.packager.docker.DockerPlugin.autoImport._ import sbt._ import Keys._ object build extends Build { lazy val root: Project = Project( id = "my-awesome-server", base = file("."), settings = Defaults.coreDefaultSettings ++ Seq( resolvers ++= { Seq( "sonatype snapshots" at "https://oss.sonatype.org/content/repositories/snapshots" }, organization := "co.awesome-startup", version := "2.69", scalaVersion := "2.11.8", libraryDependencies ++= { Seq( "org.tpolecat" %% "atto-core" % "0.4.2" withSources() ) }, dockerBaseImage := "expert/docker-java-minimal:server-jre", dockerCommands := dockerCommands.value.flatMap { case cmd@Cmd("FROM", _) => List(cmd, Cmd("RUN", "apk update && apk add bash")) case other => List(other) }, dockerRepository := Some("awesome-startup"), version in Docker := version.value, scalacOptions := Seq("-unchecked", "-deprecation", "-encoding", "utf8", "-language:implicitConversions", "-language:postfixOps", "-language:higherKinds", "-Xcheckinit"), //, "-Xlog-implicits"), javaOptions in compile += "-g:source,lines,vars", crossPaths := false, mainClass in Compile := Some("co.awesome-startup.server.EntryPoint") ) ).enablePlugins(JavaAppPackaging). enablePlugins(DockerPlugin) } 

您需要更改项目名称和dockerRepository以匹配Docker Hub中的dockerRepository ,然后通过调用sbt docker:publish来构build和部署它。 如果你想在本地发布Docker镜像,请调用sbt docker:publishLocal