java - 带有yml配置文件的gradle jar文件未从dockerfile执行

标签 java docker gradle dockerfile build.gradle

我想在容器内运行gradle构建,然后使用其配置文件和服务器参数执行jar。这就是我所拥有的

WORKDIR /app
COPY . /app


RUN  chmod +x gradlew  \
  && gradle build

COPY config/*.yml build/libs

RUN cd build/libs \
  && ls -la
  

EXPOSE 8081

ENTRYPOINT ["java", "-jar", "/app/build/libs/app.jar", "-Dconfig.location=app/build/libs/config.yml", "-Dgrails.env=prod"]
我可以看到yml文件和jar文件都在build libs文件夹中,但是当我构建dockerfile时,出现错误,指示缺少yml文件。当我重新排序它们并将配置位置放在jar文件之前时,它会找到配置,但不执行jar文件。当我故意将不正确的路径放置到jar文件时,出现一个错误,提示找不到jar。
docker 运行后我得到的是
    Configuring Spring Security Core ...
... finished configuring Spring Security Core Configuring Spring Security REST 2.0.0.RC1...
... finished configuring Spring Security REST
就是这样。虽然在本地运行,但我也会获得“正在运行的应用程序”。
任何帮助表示赞赏!

最佳答案

我是新手,因此无法发表评论。
我看到您在运行时位于build / libs中,

RUN cd build/libs
然后您的ENTRYPOINT命令正在使用相对路径作为配置位置-
"-Dconfig.location=app/build/libs/config.yml"
您可以尝试使用“/ app”而不是“app”开始位置。
另外,如果这没有帮助,您能否粘贴您提到的2种情况下出现的确切错误?

关于java - 带有yml配置文件的gradle jar文件未从dockerfile执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62836631/

相关文章:

gradle - Gradle异常的结构/格式

java - 如何从 Maven 项目创建独立的 jar?

java - 不允许加载本地资源

docker - docker与已激活的conda环境进行交互运行

android - android 插件更新到 2.2.0 后,Ionic 项目将无法构建(或运行)

gradle - 使用gradle从Jacoco报告中排除软件包

java - Tomcat:实现 java.security.Principal

java - 为什么 Hibernate 似乎是为短暂的 session 而设计的?

java - 从 Docker 容器访问主机 Java

docker - 的区别是什么?和./在RUN中