繁体   English   中英

尝试运行 Docker 映像时出现“exec 用户进程导致“没有这样的文件或目录”错误

[英]Getting "exec user process caused "no such file or directory"" error when trying to run Docker image

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

standard_init_linux.go:185: exec 用户进程导致“没有这样的文件或目录”

这是我的 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 格式。 您可能需要在所有文件上运行dos2unix实用程序,然后再将它们复制到 docker 映像中。

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

为了解决这个问题,我改变了我的 windows 的 git 全局配置,因为我想签出 Unix 风格的提交 Unix 风格。( 如何更改行尾设置

git config --global autocrlf input

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM