我有一个带有两个 Controller 和默认依赖项的简单 grails4 项目。当我尝试将 Azure Web App 或 Azure DevOps 与我的 Docker 容器一起使用时,它会失败并出现以下错误:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at grails.init.Start.main(Start.java:85)
Caused by: java.lang.RuntimeException: Could not determine grails version due to missing properties file
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:59)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:237)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:249)
at grails.init.RunCommand.main(RunCommand.groovy:21)
我的 docker 文件看起来像这样......
FROM openjdk:8u151-jdk-alpine
MAINTAINER Michael J. Lee "*****@****.com"
EXPOSE 8080
WORKDIR /app
COPY *.jar application.jar
CMD ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app/application.jar"]
其他一切都是股票。
最佳答案
错误提示“由于缺少属性文件,无法确定 grails 版本”。您可能需要在您的应用程序中添加 gradle.properties 文件。
您可以使用以下示例内容在您的应用根目录中创建 gradle.properties 文件
grailsVersion=4.0.1
gormVersion=6.0.12.RELEASE
grailsWrapperVersion=3.4.1
请引用this thread
关于docker - Grails + Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59390860/