1. standard_init_linux.go:228: exec user process caused: no such file or directory

    非常基础的多规格构建

    1. # syntax=docker/dockerfile:1
    2. # 第一行注释时可选的,会告诉 Docker 构建器在解析 dockerfile 时使用什么语法
    3. # build 阶段
    4. # 基础镜像
    5. FROM golang:alpine AS build
    6. # 创建 /app 目录,并指定为默认工作路径,之后我们就可以使用基于此目录的相对路径进行操作
    7. WORKDIR /app
    8. # 复制 go.mod 和 go.sum 文件
    9. COPY go.mod ./
    10. COPY go.sum ./
    11. # 安装依赖
    12. RUN GOPROXY="https://goproxy.io,direct" go mod download
    13. # 复制文件到镜像中?这步不太理解
    14. COPY *.go ./
    15. ENV CGO_ENABLED=0
    16. # build,指定输出目录
    17. RUN go build -o /docker-test
    18. FROM scratch as prod
    19. WORKDIR /
    20. COPY --from=build ./docker-test /docker-test
    21. EXPOSE 8080
    22. ENTRYPOINT [ "/docker-test" ]

    问题出现在需要在 21 行添加 CGO_ENABLED = 0

    分析过程可以参考 https://www.codeleading.com/article/66893503567/