Golang Dockerfile权限被拒绝

3

看起来我的Dockerfile的权限分配有错误,我似乎无法解决它。

以下是错误信息:

Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/my-app": permission denied: unknown

以下是我的Dockerfile文件

# syntax=docker/dockerfile:1

##
## Build
##
FROM golang:1.19rc2-buster AS build

WORKDIR /app

COPY src/go.mod ./
COPY src/go.sum ./
RUN go mod download

COPY src/*.go ./

RUN go build -o /my-app

##
## Deploy
##
FROM gcr.io/distroless/base-debian10

WORKDIR /

COPY --from=build /my-app /my-app

USER nonroot:nonroot

ENTRYPOINT ["/my-app"]

这是我的docker-compose文件

version: "3.7"

services:
  golang:
    container_name: golang
    build:
      dockerfile: go.Dockerfile
    ports:
      - 8080:80
    depends_on:
      - cassandra
    restart: always
  cassandra:
    container_name: cassandra
    image: cassandra:latest
    restart: always
    ports:
      - 9042:9042

1
Go语言的源代码长什么样子?是package main还是其他什么?你能在Docker之外成功运行go build命令并获得可运行的可执行文件吗? - David Maze
能否把它作为答案,David Maze?这样我就可以为您验证答案了,谢谢。 - Erik Tellier
1个回答

1

请确保您的 Go 代码包含以下内容:

package main

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接