linux - 尝试运行 Docker 镜像时出现 "exec user process caused "没有这样的文件或目录“”错误

标签 linux bash docker

我正在尝试运行一个执行 .sh 文件的简单图像,但出现此错误。

standard_init_linux.go:185: exec user process caused "no such file or directory"

这是我的 Dockerfile

FROM python:2
ADD . .
CMD ["./test.sh"]

test.sh:

#!/bin/bash
echo "test"

我在 Windows 10 中运行 Docker,我检查过容器中是否存在“/bin/bash”。

为什么会出现这个错误?

最佳答案

当我尝试在 windows 10 上使用 Docker 创建 Linux 容器镜像时,我遇到了完全相同的问题。当您将文件从 windows 复制到 docker 镜像时,文件格式是 dos 格式。在将它们复制到 docker 镜像中之前,您可能需要对所有文件运行 dos2unix 实用程序。

为了说清楚,我会分享我的经验。当我在 Windows 上使用 git 检查我的项目源代码并尝试通过在本地构建镜像来创建 linux docker 容器时,我得到了完全相同的错误消息。发生这种情况是因为我在 Linux 上创建了我的 git 项目,但这次我在 Windows 上 checkout 。我在 Windows 上的默认 git 全局配置是 check out Windows 风格的提交 Unix 风格,即 Git 在 check out 文本文件时会将 LF 转换为 CRLF。提交文本文件时,CRLF 将转换为 LF。对于跨平台项目,这是 Windows 上的推荐设置(“core.autocrlf”设置为“true”)

为了解决这个问题,我更改了 Windows 的 git 全局配置,因为我想检查 Unix 风格的提交 Unix 风格。( How to change line-ending settings )

git config --global autocrlf input

在此之后,我再次检查了我的项目并创建了一个完美运行的新本地镜像。

关于linux - 尝试运行 Docker 镜像时出现 "exec user process caused "没有这样的文件或目录“”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46867754/

相关文章:

node.js - 通过双击 bash 文件在 Ubuntu 中运行 bash 脚本(其中包含一些 npm 命令)会遇到 `npm: command not found` 错误

docker - docker compose 会自动创建端口映射吗?

linux - unix find without sort 逆向打印结果

bash - 最近 24 小时从 HDFS 中的多个目录复制文件到本地

linux - Bash 初始化稀疏数组

python - 如何通过包含特定 python 版本的 docker 从 linux 运行 python 代码

docker - 在Kubernetes中具有持久卷的redisinsights

linux - 在 Jenkins 中执行 shell 命令不识别管道字符

linux - Expect - 中断程序 - Ctrl+C

linux - 将文件移动到Linux中的子目录