首页 > 解决方案 > Docker Build 在 GitLab 上找不到 GradleWrapperMain 但可以在我的笔记本电脑上使用

问题描述

Docker build 在我的笔记本电脑上工作,但在 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"]

标签: javadockergradlegitlabgitlab-ci

解决方案


通过安装 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"]


推荐阅读