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
Post a Comment