【问题标题】:Unable to Build Docker Image with gradlew Command无法使用 gradlew 命令构建 Docker 映像
【发布时间】:2021-10-17 13:11:53
【问题描述】:

我正在尝试在 Dockerfile 中构建具有以下命令的 docker 映像

FROM openjdk:13-jdk-alpine AS builder
WORKDIR /app-build
ADD . .
RUN pwd
RUN ./gradlew console:build
RUN ls /app-build/console/build/libs/

退出并显示以下消息

/bin/sh: ./gradlew: not found
The command '/bin/sh -c ./gradlew console:build' returned a non-zero code: 127 

【问题讨论】:

    标签: java docker gradle dockerfile gradlew


    【解决方案1】:

    你需要将你的 docker 文件所在的本地目录路径和你的代码仓库的路径放在 docker build 命令中 docker build -f /home/ubuntu/your_project_repo/Dockerfile /home/ubuntu/your_project_repo/

    【讨论】:

      【解决方案2】:

      我不确定openjdk:13-jdk-alpine 的映像中已经包含什么,但如果还没有包含./gradlew 可执行文件,您需要仔细检查Dockerfile 中的ADD . . 行实际上是复制到文件./gradlew

      ./gradlew 是否本地存储在与 Dockerfile 相同的路径中? ADD . . 将获取 Dockerfile 路径中的所有文件并将其复制到您的自定义映像中。

      另一种检查是否复制到正确文件的方法是构建映像,然后使用docker exec 命令手动检查自定义 Docker 映像中有哪些文件。

      我会使用以下命令来执行此操作:docker exec -it <name_of_docker_image> bash

      【讨论】:

      • 是 ./gradlew 本地存储在与 Dockerfile 所在路径相同的路径中。
      • 您是否检查过它是否实际被复制并位于图像内的正确路径中?
      • 实际上的问题是图像没有被创建并退出并出现错误消息。
      猜你喜欢
      • 1970-01-01
      • 2021-12-24
      • 2020-08-26
      • 1970-01-01
      • 2020-05-21
      • 2017-11-26
      • 2021-03-17
      • 2020-03-23
      • 1970-01-01
      相关资源
      最近更新 更多