【问题标题】:Investigate docker error standard_init_linux.go:228: exec user process caused: no such file or directory调查 docker 错误 standard_init_linux.go:228: exec 用户进程导致:没有这样的文件或目录
【发布时间】:2021-09-27 19:39:59
【问题描述】:

当我尝试最小化我开始使用的一些 docker 图像时

FROM scratch

但是当我这样做时,我得到了

docker run --rm my/image:latest
standard_init_linux.go:228: exec user process caused: no such file or directory

但是当我切换回

FROM alpine:latest

按需要执行。所以我怀疑我的 go 应用程序中是否遇到换行问题或缺少依赖项。相反,我认为这是由于系统期望 /bin/sh 可用。但与其在黑暗中摸索并假设问题......

找出缺少什么的程序是什么?如何准确找出 docker 找不到的文件或目录?

【问题讨论】:

  • 同时,我通过戳戳和绊倒某事发现了问题 - 这已经花费了我相当长的时间。因此,对于未来的解决方案,我仍然希望有一个替代“运气”的方法......

标签: docker


【解决方案1】:

如果你的图片是FROM scratch,那么你就错过了一切。该基础映像完全不包含任何内容——没有外壳、没有共享库、没有目录。如果您不确定如何在该环境中工作,从 Alpine 或 Ubuntu 基础映像开始会容易得多。

实际上,使用FROM scratch 的唯一情况是,如果您从分发 tar 文件构建自己的基本映像(alpineubuntu 有自己的 Dockerfile,以 FROM scratch 开头),或者如果您'正在使用编译语言并构建了一个静态二进制文件(你有时会在 Go 应用程序中看到这一点,它也可能在 C++ 或 Rust 中,但不是任何 JVM 或解释语言)。

【讨论】:

    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 2019-01-01
    • 2019-09-19
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    相关资源
    最近更新 更多