Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.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 采用拉伸和高山训练进行多阶段训练_Docker_Go_Alpine_Stretch_Docker Multi Stage Build - Fatal编程技术网

Docker 采用拉伸和高山训练进行多阶段训练

Docker 采用拉伸和高山训练进行多阶段训练,docker,go,alpine,stretch,docker-multi-stage-build,Docker,Go,Alpine,Stretch,Docker Multi Stage Build,我正在尝试使用-race从go stretch开始构建,然后将其复制到小的alpine容器中以减小最终尺寸。但我在启动时遇到了这个错误: standard_init_linux.go:211: exec user process caused "no such file or directory" 我的Dockerfile: FROM golang:1.12.6-stretch as build-env WORKDIR /goman/ ADD . . RUN GOFLAGS=-mod=vend

我正在尝试使用-race从go stretch开始构建,然后将其复制到小的alpine容器中以减小最终尺寸。但我在启动时遇到了这个错误:

standard_init_linux.go:211: exec user process caused "no such file or directory"
我的Dockerfile:

FROM golang:1.12.6-stretch as build-env
WORKDIR /goman/
ADD . .
RUN GOFLAGS=-mod=vendor  go test -race -v ./...
RUN CGO_ENABLED=0 GOBIN=/goman/apps/ GOOS=linux GOARCH=amd64 go install -v \
 -a -tags netgo -installsuffix netgo -mod vendor -ldflags "-d -s -w" ./cmd/...


FROM alpine:3.10
RUN apk add --no-cache ca-certificates tzdata
COPY --from=build-env /goman/apps/ /apps
COPY --from=build-env /goman/conf /conf
WORKDIR /apps/

我可以清楚地看到容器中的文件,并且权限正确

尝试使用
go build
而不是
go install
。在这种情况下,我认为,您只需要从源代码构建一个可执行文件,而不需要安装和构建远程可执行文件。

哪个文件或目录出现了错误?@mchawre我使用entrypoint/apps/my_executable并得到了这个错误无论是由此创建的图像,只需在bash shell中运行一个容器
docker run-itd image bash
,然后
docker exec-it container id bash
,并检查文件或目录是否存在。@mchawer我在容器中设置了目录,我的所有可执行文件都在那里,并且具有正确的权限,但是它不能执行它们,即使在sh错误的情况下“没有这样的文件或目录”您在哪个系统上运行它?如果您正在运行windows,请尝试在.sh文件中将EOL从CRLF转换为LF