docker env: bash\r: 没有这样的文件或目录

Posted

技术标签:

【中文标题】docker env: bash\\r: 没有这样的文件或目录【英文标题】:docker env: bash\r: No such file or directorydocker env: bash\r: 没有这样的文件或目录 【发布时间】:2022-01-19 14:53:09 【问题描述】:

在windows10上本地部署PyCharm应用时,遇到了几个错误。 使测试命令返回以下错误:

service "core" is not running container #1 
make: *** [Makefile:60: test] Error 1

实际上,使用 make ps 命令返回的容器状态已退出 (127)。当我检查了相关容器的 docker 日志时,我看到了:

/usr/bin/env: ‘bash\r’: No such file or directory

在这个thread 中,这个错误与windows 如何处理来自不同操作系统的文件的行尾有关。通常的解决方案是:

git config --global core.autocrlf false

但是在运行代码并更新当前 git repo 并重新启动容器后,我仍然遇到同样的错误。这可能是什么问题?

【问题讨论】:

文件仍然有 DOS 行结尾。你是如何构建图像的;你需要重新运行docker build吗?或者,如果您使用绑定挂载替换映像中的代码,主机系统上的文件是否具有正确的行尾? 检查dos2unix 嘿,大卫,我使用 make 和 makefile 在 docker compose 中构建图像。如何更改 DOS 结尾?该项目是从 gitlab 下载并在 macOS 或 Linux 上编写的。在 docker-compose 内部,它应该在 ubuntu 切片上运行。创建 DOS 结尾的时间是什么时候? 以及如何确定哪些文件受到影响? 我已经编辑了项目代码样式以按照链接中的建议运行 Unix 和 MacOS 行分隔符,但它仍然返回相同的错误 - 错误 1 ​​jetbrains.com/help/pycharm/… 【参考方案1】:

什么对我有帮助 我认为问题出在基于 Unix 的容器中的 windows 行结尾。 为了解决这个问题,我找到了两条非常有用的说明:

    在 PyCharm https://www.jetbrains.com/help/pycharm/configuring-line-endings-and-line-separators.html 中配置行分隔符 为了阐明更改确实已启用,我检查了 notepad++ 中的文件 https://notepad-plus-plus.org/downloads/v8.1.9.3/ 此外,检查原始代码也很有帮助,因为部分问题是某些命令的拼写错误。

【讨论】:

以上是关于docker env: bash\r: 没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

声明env变量哪个值包含docker / docker-compose的空间

Docker-compose env文件不起作用

可以将来自docker-compose.yml的env变量传递给dockerfile吗?

为什么在bash脚本中执行ssh命令时,docker-compose没有看到我的.env文件?

我需要通过 gitlab-ci 中的 ssh 将 env 变量传递给 docker

Docker-compose env var无法正常工作