【问题标题】:Running a docker Image of Golang failed, with error 'starting container process caused: exec: "/path": permission denied'运行 Golang 的 docker 映像失败,出现错误“启动容器进程导致:exec:“/path”:权限被拒绝”
【发布时间】:2021-12-16 17:10:00
【问题描述】:

我成功地从 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

【问题讨论】:

    标签: docker go dockerfile


    【解决方案1】:

    过去的similar error message 指出了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
    

    【讨论】:

    • 非常感谢。 @VonC 在我看来这是一个愚蠢的错误,尝试复制文件夹而不是可执行文件
    • @RoshanTwanabasu 没问题。 WORKDIR app 中的 DIR 是我需要的线索。
    猜你喜欢
    • 2022-01-17
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2020-07-01
    • 2019-05-15
    相关资源
    最近更新 更多