我在 Windows 10 上使用 Docker 19(使用 Cygwin 运行 Docker)。我有这个网络/Dockerfile ...
FROM python:3.7-slim
RUN apt-get update && apt-get install
RUN apt-get install -y dos2unix
RUN apt-get install -y libmariadb-dev-compat libmariadb-dev
RUN apt-get update \
&& apt-get install -y --no-install-recommends gcc \
&& rm -rf /var/lib/apt/lists/*
RUN python -m pip install --upgrade pip
WORKDIR /app/
COPY requirements.txt requirements.txt
COPY entrypoint.sh entrypoint.sh
RUN tr -d '\r' < /app/entrypoint.sh > /app/entrypoint2.sh
RUN python -m pip install -r requirements.txt
RUN grep '\r' /app/entrypoint.sh
RUN dos2unix /app/entrypoint.sh
RUN grep '\r' /app/entrypoint.sh
ENTRYPOINT ["bash", "/app/entrypoint.sh"]
and the entrypoint.sh file referenced looks like
#!/bin/bash
set -e
python manage.py migrate
python manage.py migrate directory
python manage.py docker_init_db_data
exec "$@"
但我猜有一些“\r”行尾会导致在 Windows 上运行“docker-compose up”死机。在我上面的文件中,我有
RUN dos2unix /app/entrypoint.sh
但我想这不会这样做,因为运行“docker-compose up”会导致
web_1 | set: usage: set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]
web_1 | /app/entrypoint.sh: line 3: $'\r': command not found
web_1 | Unknown command: 'migrate\r'. Did you mean migrate?
web_1 | Type 'manage.py help' for usage.
如何正确替换我的 shell 脚本中的“\r”行结尾,以便我可以在 Windows(以及理想的所有其他)平台上正确运行我的 Dockerfile?