无法在基于Alpine的Docker容器中运行Play框架应用程序

时间:2018-04-06 14:58:36

标签: docker sbt sbt-native-packager

我有一个Play应用程序,默认运行(由sbt提供)docker base image。我想将此应用程序切换为基于阿尔卑斯山的图像。

sbt-native-packager docs,我添加了

enablePlugins(AshScriptPlugin)
dockerBaseImage := "openjdk:8-jre-alpine"

到我的build.sbt文件。当我尝试运行此容器时,出现以下错误:

bin/foo-service: line 51: /opt/docker/lib/foo-service.foo-service-1.0.40-launcher.jar: Permission denied
bin/foo-service: line 56: is_cygwin: not found
Unrecognized option: -J-Xms512M
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

1 个答案:

答案 0 :(得分:0)

跟踪此问题已经存在问题。问题是由于在bash脚本附加功能中添加了一些非ash兼容的东西。

https://github.com/sbt/sbt-native-packager/issues/1118

建议的一个解决方法(https://github.com/sbt/sbt-native-packager/issues/978#issuecomment-313393423)是将其添加到您的build.sbt

bashScriptExtraDefines := List(
    """addJava "-Duser.dir=$(realpath "$(cd "${app_home}/.."; pwd -P)")""""
)