首页 > 解决方案 > 当我启动`docker compose up`时,如何解决“权限被拒绝”的问题?

问题描述

当我只运行 docker build 时,我没有任何问题。

但是,当我开始时docker-compose up

Cannot start service server: OCI runtime create failed: container_linux.go:370: starting container process caused: exec: permission denied: unknown

Dockerfile

...

ENV CGO_ENABLED=0
ENV GO111MODULE=on
ENV GOFLAGS=-mod=vendor

RUN dep ensure

RUN go mod vendor
RUN go mod download
RUN go mod verify

EXPOSE 8080

ENTRYPOINT  ["/go/src/github.com/project/module"]

docker-compose.yaml

 ...
  server:
    build:
      context: .
      dockerfile: service.dockerfile
    platform: linux
    ports:
      - 8080:8080

标签: dockerdocker-compose

解决方案


关于 docker 权限

适当的解决方案

  1. 您需要拥有卷的所有必需权限
  2. 将您的用户添加到 docker 组。更多信息在这里:https ://docs.docker.com/engine/install/linux-postinstall/

快速而糟糕的解决方案

使用 sudo 或以 root 身份运行 docker-compose:sudo docker-compose -f ... up


OCI 错误:

但是您的问题不在于权限,而在于不存在的程序:

ENTRYPOINT  ["/go/src/github.com/project/module"]

程序可执行二进制文件是否/go/src/github.com/project/module具有执行权限?


推荐阅读