Grails 3.1.4和Docker – grails命令返回“找不到名称web的配置文件”

前端之家收集整理的这篇文章主要介绍了Grails 3.1.4和Docker – grails命令返回“找不到名称web的配置文件”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个简单的grails应用程序,它本身运行良好.使用带有grails run-app的grails web配置文件没有问题

但是,当我从应用程序构建docker镜像时,grails命令(如grails run-app –stacktrace或grails dependency-report –stacktrace发送到docker会失败并发生堆栈跟踪:

  1. | Error Error occurred running Grails CLI: No profile found for name [web]. (NOTE: Stack trace has been filtered. Use --verbose to see entire trace.)
  2. java.lang.IllegalStateException: No profile found for name [web].
  3. at org.grails.cli.GrailsCli.initializeProfile(GrailsCli.groovy:507)
  4. at org.grails.cli.GrailsCli.initializeApplication(GrailsCli.groovy:308)
  5. at org.grails.cli.GrailsCli.execute(GrailsCli.groovy:271)
  6. at org.grails.cli.GrailsCli.main(GrailsCli.groovy:162)
  7. | Error Error occurred running Grails CLI: No profile found for name [web].

Docker Build命令:
从grails应用程序的根目录运行.
用户位于docker组中.

  1. docker build -t mygrailsapp .

DockerFile:
(构建将在RUN grails依赖项 – report –stacktrace上失败.如果我删除该命令,则构建完成.但是,第一次使用default命令运行应用程序时它会失败并出现相同的错误.)

  1. #
  2. # My Dockerfile
  3. #
  4. # https://github.com/dockerfile/java
  5. # https://github.com/dockerfile/java/tree/master/oracle-java8
  6. # https://hub.docker.com/r/mozart/grails/
  7. # Pull base image.
  8. FROM ubuntu
  9. RUN apt-get update
  10. # install apt-get-repository
  11. RUN \
  12. apt-get install -y software-properties-common wget unzip git
  13. # Install Java.
  14. RUN \
  15. echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \
  16. add-apt-repository -y ppa:webupd8team/java && \
  17. apt-get update && \
  18. apt-get install -y oracle-java8-installer
  19. rm -rf /var/lib/apt/lists/* && \
  20. rm -rf /var/cache/oracle-jdk8-installer
  21. # Define working directory.
  22. WORKDIR /data
  23. # Define commonly used JAVA_HOME variable
  24. ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
  25. # Set customizable env vars defaults.
  26. # Set Grails version (default: 3.1.4; min: 3.0.0; max: 3.1.4).
  27. ENV GRAILS_VERSION 3.1.4
  28. # Install Grails
  29. WORKDIR /usr/lib/jvm
  30. # TODO put grails zips on your own server with decent bandwidth
  31. RUN wget https://github.com/grails/grails-core/releases/download/v$GRAILS_VERSION/grails-$GRAILS_VERSION.zip && \
  32. unzip grails-$GRAILS_VERSION.zip && \
  33. rm -rf grails-$GRAILS_VERSION.zip && \
  34. ln -s grails-$GRAILS_VERSION grails
  35. # Setup Grails path.
  36. ENV GRAILS_HOME /usr/lib/jvm/grails
  37. ENV PATH $GRAILS_HOME/bin:$PATH
  38. # Create App Directory
  39. RUN mkdir /app
  40. # Set Workdir
  41. WORKDIR /app
  42. # Copy App files
  43. COPY . /app
  44. # Run Grails dependency-report command to pre-download dependencies but not
  45. # create unnecessary build files or artifacts.
  46. RUN grails dependency-report --stacktrace
  47. # Set Default Behavior
  48. ENTRYPOINT ["grails"]
  49. CMD ["run-app"]

建立:

Ubuntu 14.04 LTS 64

Jave:Oracle JDK 1.8.0_77 64

通过sdkman 4.0.32:

Grails 3.14
Groovy 2.4.6
Gradle 2.12

搬运工人
客户:
 版本:1.10.3
 API版本:1.22
 转到版本:go1.5.3
 Git commit:20f81dd
 建造:2016年3月10日星期四15:54:52
 OS / Arch:linux / amd64

最佳答案
当我移动使用Web配置文件的Grails 3.1.4应用程序到新机器时,我遇到了同样的问题.

在我的应用程序根目录中执行gradle clean会触发正在下载的Grails Maven依赖项,之后grails命令开始工作.

猜你在找的Docker相关文章