java - 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"]
解决方案
通过安装 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"]
推荐阅读
- python - 导入和使用谷歌云包
- python - 如何在sklearn中缩放单个样本以进行预测?
- java - 在 Eclipse 中找不到 e(fx)clipse IDE
- swift - 如何在 Apple 地图中 1:1 缩放图像
- swift - 可可 NSScrollView 不将 scrollWheel 事件传递给下一个响应者
- javascript - 当之前的状态是在组件方法的闭包中时,如何处理 React.js 钩子中的案例?
- azure-data-factory-2 - 在数据流的接收器设置下选择“作为列中的数据”作为文件名选项是在 Azure 数据工厂 V2 中的 Blob 存储的根目录中写入数据
- python - 与 GCP 虚拟机实例的安全连接并拉出文件
- java - Illegal start of expression while trying to multiply?
- keycloak - oidc-client - 使用自己的 URL 登录