为了账号安全,请及时绑定邮箱和手机立即绑定

启动容器进程导致“exec:\”/ app \“:权限被拒绝”:未知

启动容器进程导致“exec:\”/ app \“:权限被拒绝”:未知

Go
四季花海 2023-07-17 17:49:53
当我尝试使用 docker 构建 golang 时docker的镜像构建成功,但是使用docker run运行时出现如下错误docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"/app\": permission denied": unknown.我认为这个错误导致没有添加用户,所以我添加了组和用户,如下所示RUN groupadd -g 10001 myapp \    && useradd -u 10001 -g myapp myapp但没有修复。这是我的源 docker 文件FROM golang:1.12.9 as builderADD . /go/src/appname/WORKDIR /go/src/appname/ENV GO111MODULE=onCOPY go.mod .COPY go.sum .RUN go mod downloadCOPY . .RUN  CGO_ENABLED=0 GOOS=linux GOARCH=amd64 make build target=prodFROM alpineRUN apk update \  && apk add --no-cacheCOPY --from=builder /go/src/ /appENTRYPOINT [ "/app" ]
查看完整描述

3 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

您将在此步骤中将整个源文件夹复制到目录中/app

COPY --from=builder /go/src/ /app

然后你尝试执行该目录:

ENTRYPOINT [ "/app" ]

相反,您需要复制 go build 在复制步骤中输出的已编译二进制文件。


查看完整回答
反对 回复 2023-07-17
?
萧十郎

TA贡献1815条经验 获得超12个赞

您需要指定二进制文件的输出目录。



RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -o /app .



然后复制app目录


COPY --from=builder /app ./

RUN chmod +x ./app

ENTRYPOINT ["./app"]


查看完整回答
反对 回复 2023-07-17
?
守候你守候我

TA贡献1802条经验 获得超10个赞

感谢大家的建议,我解决了这个问题

我不能只是复制正确指定的构建二进制文件

COPY --from=builder /go/src/ /app

COPY --from=builder /go/src/build/build_app_name /app

谢谢!!



查看完整回答
反对 回复 2023-07-17
  • 3 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信