docker:来自守护进程的错误响应:无法创建 shim 任务:OCI 运行时创建失败:runc 创建失败:无法启动容器进程

Dee*_*rma 25 go docker

我正在尝试构建此 dockerfile 然后运行它,但出现此错误docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "./deployment-service": permission denied: unknown.

这是我的 docker 文件,我已经创建了卷和网络

FROM golang:1.19.2-alpine as builder

RUN apk add bash

RUN apk add --no-cache openssh-client ansible git

RUN mkdir /workspace
WORKDIR /workspace

COPY go.mod ./
COPY go.sum ./

RUN go mod download

COPY . ./

RUN go build -o deployment-service cmd/deployment-service/main.go

FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/

COPY --from=builder /workspace .

ARG DEFAULT_PORT=8080
ENV PORT $DEFAULT_PORT

EXPOSE $PORT

CMD ["./deployment-service"]

Run Code Online (Sandbox Code Playgroud)

这是我的运行命令,

docker run --name=${CONTAINER_NAME} -d --rm -p ${PORT}:80 -e DEPLOYMENT_SERVICE_DATABASE_CONNECTION_URI=mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@${MONGO_CONTAINER_NAME}:27017/ -e DEPLOYMENT_SERVICE_SERVER_SECRET_KEY=${SECRET_KEY} -e ANSIBLE_CONFIG='./jam-ansible/ansible.cfg' -e DEPLOYMENT_SERVICE_ANSIBLE_SUBMISSION_ROOT=${DEPLOYMENT_ROOT} -v ${DEPLOYMENT_VOLUME}:${DEPLOYMENT_ROOT} --network=${NETWORK_NAME} server:latest
Run Code Online (Sandbox Code Playgroud)

帮助解决我的问题。

小智 10

似乎缺乏执行部署服务的权限。你可以加

RUN chmod +x deployment-service
Run Code Online (Sandbox Code Playgroud)

前CMD ["./deployment-service"]


小智 2

看起来您需要编辑部署服务文件的权限。

尝试跑步

chmod a+x ./deployment-service
Run Code Online (Sandbox Code Playgroud)

在终端然后重试。