Docker 由于 "grep -v" 尾随 \r,构建 Django 应用程序时 compose 失败

Docker compose failed while building Django app because of "grep -v" with trailing \r

我正在尝试编写一个 docker-compose 文件,有一个步骤是我 运行 grep -v '^#' .env.env 中获取所有未注释的行文件设置环境变量。

.env文件中,它看起来像这样

DB_ENGINE=django.db.backends.postgresql

然而,在 运行 grep -v '^#' .env 和我检查环境之后,变量 DB_ENGINE 的值为 "django.db.backends.postgresql\r"(注意那里尾随的 \r)。

我该如何克服这个问题?我已经这样做了很长时间,以前从未发生过。

无需对所有文件尝试 dos2unix,您可以简单地从 grep 结果 as in here 中删除任何 \r,其中:

grep -v '^#' .env| tr -d '\r'