当前位置: 首页 > 面试题库 >

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

归泽宇
2023-03-14
问题内容

当我尝试使用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 builder

ADD . /go/src/appname/

WORKDIR /go/src/appname/

ENV GO111MODULE=on

COPY go.mod .
COPY go.sum .

RUN go mod download
COPY . .

RUN  CGO_ENABLED=0 GOOS=linux GOARCH=amd64 make build target=prod

FROM alpine

RUN apk update \
  && apk add --no-cache

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

ENTRYPOINT [ "/app" ]

谢谢


问题答案:

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

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

然后,您尝试执行目录:

ENTRYPOINT [ "/app" ]

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



 类似资料:
  • 问题内容: 我需要使用Go工具链构建一个程序,然后执行它。由于某些原因,由于分支,我收到了权限错误。有没有办法避免此错误或任何最佳做法?我认为我的程序与工具做了类似的事情,尽管没有得到这种错误。 错误: 作业系统:OSX 10.11 问题答案: 您要将命令路径从二进制文件的位置更改为。 如果要更改工作目录,请使用

  • 问题内容: 我最近使用CentOS 6.3将Go安装到了我们的服务器上。安装似乎一切正常。但是,我制作了一个测试“ hello world”脚本,运行时得到以下输出。 现在运行go env或其他go命令似乎可以正常工作。起初,我认为这是一个权限问题,但是以root用户身份运行时,我会得到相同的结果。一个 问题答案: 只是猜测:出于安全原因,您的nix可能会禁用在/ tmp中执行程序。它可能在Cen

  • 我是docker新手。我想在docker中部署我的应用程序节点js,但我面临以下错误,请帮助我 /usr/bin/docker-current:来自守护进程的错误响应:oci运行时错误:container_linux.go:247:启动容器进程导致“在$PATH中找不到exec: \".\": 可执行文件”。 Dockerfile:

  • 错误:无法启动服务cpanel_客户端:头字段值无效“oci运行时错误:容器_linux.go:247:启动容器进程导致”exec:\“sudo\”:未找到可执行文件 这是我的docker文件, 这是码头工人。yml, 我的package.json档案, 建造成功了。当我运行时,我遇到了这个错误。有人能告诉我哪里错了吗?

  • logcat给我这个错误: 当我将应用程序从eclipse部署到emulator时,它工作正常。当我关闭应用程序并尝试再次运行时,出现问题,然后我收到消息: 这是我的舱单。xml 有人能检查一下出了什么问题吗? 谢谢

  • 问题内容: 当我尝试运行简单的docker命令时,例如: 我收到一条错误消息: 获得权限被拒绝… /var/run/docker.sock:connect:权限被拒绝 当我检查权限 我看到这一行: 因此,我遵循许多论坛的建议并将本地用户添加到docker组: 但这无济于事。我仍然收到非常相同的错误消息。我该如何解决? 问题答案: 对于那些刚接触shell的人,命令: 需要在您的外壳中定义。默认情况