Docker Build 在 GitLab 上找不到 GradleWrapperMain 但可以在我的笔记本电脑上使用
Posted
技术标签:
【中文标题】Docker Build 在 GitLab 上找不到 GradleWrapperMain 但可以在我的笔记本电脑上使用【英文标题】:Docker Build can't find GradleWrapperMain on GitLab but works on my laptop 【发布时间】:2021-09-06 11:46:13 【问题描述】:Docker 构建可以在我的笔记本电脑上运行,但在 GitLab 上我得到了
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
尝试了很多不同的设置,但没有任何效果...在 gradlew build 失败...欢迎任何想法
我的 .gitlab-ci.yaml
....variables here
publish:
image:
name: amazon/aws-cli
entrypoint: [""]
services:
- docker:dind
before_script:
- amazon-linux-extras install docker
- aws --version
- docker --version
- export GRADLE_USER_HOME=`pwd`/gradle
- export CLASSPATH=`pwd`/gradle/wrapper
cache:
paths:
- gradle/wrapper
- .gradle/wrapper
- .gradle/caches
script:
- docker build -t $DOCKER_REGISTRY/$APP_NAME:$CI_PIPELINE_IID .
我的 Dockerfile
FROM openjdk:11
ENV wdir=code
ENV MY_SERVICE_PORT=8080
WORKDIR /$wdir
COPY . /code
RUN echo "Running build"
RUN ["/code/gradlew", "build"]
EXPOSE $MY_SERVICE_PORT
# Run the service
CMD ["java", "-jar", "build/libs/code-1.0-SNAPSHOT.jar"]
【问题讨论】:
【参考方案1】:通过安装 gradle 创建了一个解决方法...现在可以使用:
FROM openjdk:11
ENV wdir=code
ENV MY_SERVICE_PORT=8080
WORKDIR /code
# Install Gradle
RUN wget -q https://services.gradle.org/distributions/gradle-6.5-bin.zip \
&& unzip gradle-6.5-bin.zip -d /opt \
&& rm gradle-6.5-bin.zip
ENV GRADLE_HOME /opt/gradle-6.5
ENV PATH $PATH:/opt/gradle-6.5/bin
# Prepare by downloading dependencies
ADD build.gradle /code/build.gradle
ADD src /code/src
RUN echo "Running build"
RUN cd /code
RUN gradle --no-daemon build
EXPOSE $MY_SERVICE_PORT
# Run the service
CMD ["java", "-jar", "build/libs/code-1.0-SNAPSHOT.jar"]
【讨论】:
以上是关于Docker Build 在 GitLab 上找不到 GradleWrapperMain 但可以在我的笔记本电脑上使用的主要内容,如果未能解决你的问题,请参考以下文章
在 GitLab-ci Docker build 中执行外部 bash 脚本
npm install 后 Gitlab Shared Runner docker build
gitLab CI/CD docker自动部署vue前端项目