在Dockerfile中未找到入口点

r7knjye2  于 2023-04-20  发布在  Docker
关注(0)|答案(1)|浏览(133)

给定的是一个非常简单的Dockerfile,在Windows 11上构建和运行。dockerfile有两个阶段,首先是构建阶段,然后是实际的可部署容器。

FROM golang:1.17 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp .         # build /app/myapp

FROM alpine:3.14
RUN apk add --no-cache ca-certificates
COPY --from=builder /app/myapp /myapp
EXPOSE 8080
ENTRYPOINT ["/myapp"]

运行容器失败,并出现以下错误:

/myapp: not found

我检查了第一阶段,它生成了一个名为myapp的可执行文件,其中包含5984字节。我可以在那里运行和执行它。
我还检查了第二阶段,我可以验证/myapp存在5984和正确的执行位。通过sh处于检查模式,我无法执行/myapp,因为它给了我同样的错误。任何想法可能导致这一点?

kkbh8khc

kkbh8khc1#

可能有几个原因导致此问题,请尝试以下解决方案之一:
1.特别是在Windows 11中,运行Alpine Linux映像(alpine:3.14)本身可能是问题所在。请尝试使用其他映像。
1.尝试在ENTRYPOINT ["/myapp"]之前添加chmod +x /myapp,它可以帮助您检查/myapp是否在容器中可执行。

相关问题