Docker环境:bash\r不存在该文件或目录。

3

在Windows10上使用PyCharm本地部署应用程序时,我遇到了几个错误。 运行测试命令后返回了以下错误:

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

实际上,使用命令make ps返回的容器状态为exited(127)。当我检查所涉及容器的docker日志时,我看到了以下内容:

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

在这个线程中,这个错误与Windows处理来自不同操作系统的文件行结尾有关。通常的解决方案是:
git config --global core.autocrlf false

但是在运行代码、更新当前的git仓库和重新启动容器之后,我仍然得到相同的错误。这里可能有什么问题?


1
文件仍然具有DOS行结尾。您是如何构建镜像的?您需要重新运行docker build吗?或者,如果您正在使用绑定挂载替换镜像中的代码,则主机系统上的文件是否具有正确的行结尾? - David Maze
检查 dos2unix - Nic3500
嗨,David,我使用make和makefile在docker compose中构建图像。我该如何更改DOS结尾?该项目是从gitlab下载并在macOS或Linux上编写的。在docker-compose中,它应该在ubuntu片段上运行。何时创建DOS结尾? - Zechariah Lvov
我该如何找出哪些文件受到了影响? - Zechariah Lvov
我已经按照链接中建议的方式编辑了项目代码风格,以便具有Unix和MacOS行分隔符,但仍然返回相同的错误 - 错误1 https://www.jetbrains.com/help/pycharm/configuring-line-endings-and-line-separators.html - Zechariah Lvov
2个回答

6
当我在Docker中使用Windows并运行bash脚本时,我遇到了类似的问题,我通过使用LF而不是CRLF作为行分隔符来解决这个问题。在VSCode中,我们可以在此处更改它: enter image description here

同样适用于IntelliJ - Janine

3

什么帮助了我

我认为问题出在基于Unix的容器中的Windows换行符上。为了解决它,我找到了两个非常有帮助的指令:

  1. 在PyCharm中配置你的行分隔符https://www.jetbrains.com/help/pycharm/configuring-line-endings-and-line-separators.html
  2. 为了澄清更改是否真正生效,我在notepad++中检查了文件https://notepad-plus-plus.org/downloads/v8.1.9.3/
  3. 同时,检查原始代码也是有帮助的,因为问题的一部分是某些命令的拼写错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接