我有一个 Go 1.18 应用程序,它在我的 WSL2 Ubuntu 中运行没有问题,但无法在 Docker 容器中运行并显示错误消息exec /app: no such file or directory。
我的 Dockerfile(稍微改编自另一个没有问题的 Go 1.12 应用程序)是:
FROM golang:1.18-alpine AS build
WORKDIR /app
COPY go.mod ./
COPY go.sum ./
RUN go mod download
COPY source/*.go ./
RUN go build -o /app
FROM gcr.io/distroless/static-debian11
COPY --from=build /app /app
USER nonroot:nonroot
CMD ["/app"]
构建它没有显示错误。我尝试添加GOOS=linux和GOARCH=amd64构建,--platform linux/amd64但没有任何区别(我认为应该没有必要?)。我从 Distroless 切换到 Debian,同样的问题。
该文件/app存在 (11 mb, 755)。file /app给出这个输出:
app: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-x86_64.so.1, Go BuildID=UsV_orwX-S3Rwh16P1VH/6u2iHufDhnUYUkHBp0rE/2xn48wuW047ZRbQ7qPIy/ihQgooFxjsMgMzYGE-8h, not stripped
我不知道我哪里出错了。这里的问题是什么?
蝴蝶不菲
沧海一幻觉
随时随地看视频慕课网APP
相关分类