我正在尝试构建以下 docker 文件然后运行它,但收到此错误
error response from daemon: failed to create shim task: oci runtime create failed: runc create failed: unable to start container process: exec: "./doc8": permission denied: unknown
我的 docker 文件如下,尝试一次性构建两个容器,另一个 id postgresql:
version: '3.7' services: postgre-db: container_name: postgre-db image: postgres:12.2-alpine environment: postgres_password: postgres postgres_user: postgres postgres_db: postgres ports: - "5432:5432" volumes: - pgdata:/var/lib/postgresql/data doc8server: container_name: doc8server image: {image_name} env_file: - doc8.env build: context: . dockerfile: dockerfile.doc8server.multistage ports: - "{port}:{port}" volumes: - doc8data:/opt/app/assets/pdfs - doc8data:/opt/app/assets/pdfs/originalfiles depends_on: - postgre-db volumes: pgdata: {} doc8data: {}
这是我的运行命令
docker compose up -d
这是我的 dockerfile
FROM golang:latest as builder LABEL maintainer="Doc8 <[email protected]>" WORKDIR /app/invos_server_golang COPY go.mod go.sum ./ RUN go mod download COPY . . WORKDIR /app/invos_server_golang RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o doc8 . FROM rastasheep/ubuntu-sshd:latest WORKDIR /opt/app COPY --from=builder /app/invos_server_golang/doc8 . COPY --from=builder /app/invos_server_golang/doc8.env . EXPOSE {PORT} CMD ["./doc8"]
如果我做错了什么,请告诉我
尝试在容器内执行 ./doc8 命令时似乎存在权限问题。您可以修改 docker 文件以确保可执行文件在运行之前具有正确的权限。
在 dockerfile 中修改此内容:
# Add execute permissions to the executable RUN chmod +x ./doc8 CMD ["./doc8"]