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.yml的env变量传递给dockerfile吗?
为什么在bash脚本中执行ssh命令时,docker-compose没有看到我的.env文件?