Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker COPY未复制脚本_Docker_Dockerfile - Fatal编程技术网

Docker COPY未复制脚本

Docker COPY未复制脚本,docker,dockerfile,Docker,Dockerfile,Docker COPY未通过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

Docker COPY未通过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测试台。
$docker运行-it测试台
但是我得到了错误

/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
~ #

您的
docker构建是否成功。当我尝试模拟此操作时,发现以下错误

 ---> 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
,运行apk add--no cache go build base gcc go git
,然后再次运行

这里的
COPY
操作似乎是正确的。确保它存在于执行
docker build
的目录中



好的,脚本正在使用
/bin/bash
bash二进制文件在alpine图像中不可用。必须安装它,或者应该使用
/bin/sh
外壳

您是否在Windows主机上,如果是,是否可以检查行尾?如果您将
ENTRYPOINT
更改为
CMD
,您还可以
docker运行--rm-it测试台sh
,根据该图像在容器中获得一个调试外壳,以便进行查看。我在Mac上。我在容器中执行了exec,发现
bench.sh
存在于root中。您能分享
bench.sh
的一些内容吗?您的脚本是否有更新的问题?包括bench.sh Docker引擎版本是什么?抱歉,我错过了git行。添加时会出现相同的错误。@VBoi可以使用
apk add bash
添加bash二进制文件,也可以将脚本修改为使用/bin/sh