【问题标题】:Unable to run Play framework app in Alpine-based Docker container无法在基于 Alpine 的 Docker 容器中运行 Play 框架应用程序
【发布时间】:2018-09-16 15:35:57
【问题描述】:

我有一个在默认(由 sbt 提供)docker 基础映像上运行的 Play 应用程序。我想将此应用程序切换为基于 Alpine 的图像。

根据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.

【问题讨论】:

    标签: docker sbt sbt-native-packager


    【解决方案1】:

    跟踪此问题已经存在。问题是由于在 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)")""""
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-11
      • 2020-07-17
      • 2020-12-30
      相关资源
      最近更新 更多