Docker构build – 返回一个非零的代码:127

我在Windows操作系统上运行。 我试图在minikube上使用Git bash和docker本身使用dockerterminal来构builddocker镜像。 我遇到RUN [“./gradlew”,“clean”,“build”,“ – debug”]错误 。 在运行相同的命令./gradlew干净的生成 – debuggingterminal上的工作。

Docker文件:Docker-build

FROM openjdk:8u131-jdk-alpine COPY . /app WORKDIR /app RUN ["./gradlew", "clean", "build", "--debug"] 

terminal输出:

 Local User@PC MINGW64 /E/projects/authentication (master) $ docker build -t my-image -f Dockerfile-build . Sending build context to Docker daemon 51.7MB Step 1/4 : FROM openjdk:8u131-jdk-alpine ---> 478bf389b75b Step 2/4 : COPY . /app ---> 818b5bb8a22d Removing intermediate container 02b237aa04c0 Step 3/4 : WORKDIR /app ---> e238b49f5174 Removing intermediate container cd052cd7975a Step 4/4 : RUN ./gradlew clean build --debug ---> Running in c47b21d9a0bc ': No such file or directory The command './gradlew clean build --debug' returned a non-zero code: 127 

注:gradlew在我目前的目录/ E / projects / authentication下

尝试改变

 RUN ["./gradlew", "clean", "build", "--debug"] 

 RUN gradlew clean build --debug 

对于RUN命令,不需要添加[,] 。 主要是CMD, ENTRYPOINT

解决这个问题的一般解决scheme是进入系统进行debugging

对于这种情况。

 Removing intermediate container 02b237aa04c0 Step 3/4 : WORKDIR /app ---> e238b49f5174 <== useful image !! Removing intermediate container cd052cd7975a 

然后你可以运行图像来检查里面

 docker run -it e238b49f5174 bash # ls # gradlew clean build --debug 

大多数情况下,你会弄清楚它是什么。 如果你可以把这些代码(或部分)放到github中,会很好

添加gradlew text eol=lf到.gitattributes为我工作,因为我是从Windows上的Git Bash运行。 这是由于跨平台线尾的缺失。