docker - sbt-native-packager scala play dockerfile not running with default config -


i'm trying use sbt-native-packager produce docker image of scala play app, followed steps described @ http://www.scala-sbt.org/sbt-native-packager/formats/docker.html

this configuration:

on plugins.sbt added dependency sbt native packager:

// sbt native addsbtplugin("com.typesafe.sbt" % "sbt-native-packager" % "1.2.1") 

on build.sbt added plugins universal , docker:

.enableplugins(playscala, javaapppackaging) 

i added properties:

javaoptions in universal ++= seq(   // jvm memory tuning   "-j-xmx1024m",   "-j-xms512m",    // since play uses separate pidfile have provide proper path   // name of pid file must play.pid   s"-dpidfile.path=/var/run/${packagename.value}/play.pid",    // use separate configuration file production environment   s"-dconfig.file=/usr/share/${packagename.value}/conf/production.conf",    // use separate logger configuration file production environment   s"-dlogger.file=/usr/share/${packagename.value}/conf/logback.xml" )  // exposing play ports dockerexposedports in docker := seq(9000, 9443) 

then generate docker image using plugin , sbt cli:

docker:publishlocal 

the dockerfile gets generated @ ./target/docker/dockerfile

when inspect file see:

from openjdk:latest workdir /opt/docker add opt /opt run ["chown", "-r", "daemon:daemon", "."] user daemon entrypoint ["bin/root"] cmd [] 

which doesn't seem contain necessary steps run app, when use docker build . :

java.nio.file.nosuchfileexception: /var/run/root/play.pid

it seems dockerfile missing steps should mkdir /var/run/{app_name}/ (* creating folder inside docker container instance)

and chown folder in order play create pid file.

how fix above error ?

what's error message when starting docker image , how start it?

then there couple of notable things.

play ships native-packager

you shouldn't have add plugin, configure docker relevant stuff. linked correct documentation package format ( docker ).

archetypes vs formats

your configuration won't work without play plugin. take @ http://www.scala-sbt.org/sbt-native-packager/archetypes/java_app/index.html explains how configure simple application build.

i'd recommend read format , archetypes section here: http://www.scala-sbt.org/sbt-native-packager/introduction.html#archetype-plugins

native docker build

native-packager generates 2 docker files, confusing , not relevant. sorry confusion. plan remove redundant docker file. go 1 level deeper , run docker build command.

hope helps, muki


Comments

Popular posts from this blog

What is happening when Matlab is starting a "parallel pool"? -

angular - DownloadURL return null in below code -

php - Cannot override Laravel Spark authentication with own implementation -