Docker副本不在bash脚本上复制。
FROM alpine:latest
#Install Go and Tini - These remain.
RUN apk add --no-cache go build-base gcc go
RUN apk add --no-cache --update ca-certificates redis git && update-ca-certificates
# Set Env Variables for Go and add Go to Path.
ENV GOPATH /go
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
RUN go get github.com/rakyll/hey
RUN echo GOLANG VERSION `go version`
COPY ./bench.sh /root/bench.sh
RUN chmod +x /root/bench.sh
ENTRYPOINT /root/bench.sh这是剧本-
#!/bin/bash
set -e;
echo "entered";
hey;我尝试运行上面的Dockerfile
$ docker build -t test-bench .
$ docker run -it test-bench但我明白错误
/bin/sh: /root/bench.sh: not found文件确实存在-
$ docker run --rm -it test-bench sh
/ # ls
bin dev etc go home lib media mnt opt proc root run sbin srv sys tmp usr var
/ # cd root
~ # ls
bench.sh
~ #发布于 2019-10-29 15:53:42
你的docker build成功了吗。当我试图模拟时,发现了以下错误
---> Running in 96468658cebd
go: missing Git command. See https://golang.org/s/gogetcmd
package github.com/rakyll/hey: exec: "git": executable file not found in $PATH
The command '/bin/sh -c go get github.com/rakyll/hey' returned a non-zero code: 1尝试使用Dockerfile git安装RUN apk add --no-cache go build-base gcc go git,然后再次运行。
这里的COPY操作似乎是正确的。确保它存在于执行docker build的目录中。
好的,脚本使用的是/bin/bash,在高寒图像中,bash二进制文件不可用。要么必须安装它,要么应该使用/bin/sh外壳。
https://stackoverflow.com/questions/58610761
复制相似问题