运行 一个 docker Golang 镜像失败,错误 'starting container process caused: exec: "/path": permission denied'

Running a docker Image of Golang failed, with error 'starting container process caused: exec: "/path": permission denied'

我成功地从 docker 文件构建了 Go docker 图像,但是 docker run -p port:port --name imagename imageid 给我 permission denied 错误。

这是我的 docker 文件

FROM golang:1.17.2-alpine3.13 as build

WORKDIR /app

COPY . .

RUN go build -o app

FROM alpine:3.7

COPY --from=build /app /usr/local/bin/go_webhooks

RUN chmod +x /usr/local/bin/go_webhooks

ENTRYPOINT ["/usr/local/bin/go_webhooks"]

我尝试使用chmod但还是无法解决。

实际的错误信息是:

docker run -p 8000:8000 --name go_webs3 d5f30e8f9703 
docker: Error response from daemon: OCI runtime create failed:
container_linux.go:380: starting container process caused: exec:
"/usr/local/bin/go_webhooks": permission denied: unknown. 
ERRO[0000] error waiting for container: context canceled

过去 指出了一个 go build 问题。

但在您的情况下,将 文件夹 复制到 /usr/local/bin/go_webhooks 会使 go_webhooks 成为 文件夹

WORKDIR /app
# means /app is a folder

不能直接执行文件夹。
您的入口点需要引用该文件夹内的可执行文件。

您可能需要将构建的文件复制到 /app:

COPY --from=build /app/app /usr/local/bin/go_webhooks