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运行。 这是由于跨平台线尾的缺失。