シェルスクリプトからDockerコンテナにdjango-tornadoハイブリッドアプリを起動し、認識できない引数として--noinput
を取得しようとしていますジャンゴするためのコマンド:manage.py collectstatic:error:認識できない引数:シェルスクリプトの--noinputがDockerによって起動されました
usage: manage.py collectstatic [-h] [--version] [-v {0,1,2,3}]
[--settings SETTINGS] [--pythonpath PYTHONPATH]
[--traceback] [--no-color] [--noinput]
[--no-post-process] [-i PATTERN] [-n] [-c] [-l]
[--no-default-ignore]
manage.py collectstatic: error: unrecognized arguments: --noinput
は、なぜ私は認識できない引数として--noinput
を得ることでしょうか?私Dockerfileは、両方の両方のために失敗している--noinput
引数、と。私は無駄になど、不要な行を削除コマンドの周りに空白を調整して周りにプレイしました(collectstatic
とmigrate
のコマンドを実行し、展開シェルスクリプトを呼び出します。I 。何の問題もなく、ローカルにシェルスクリプトを実行することができ、唯一のシェルスクリプトにドッカーコンテナRUN
コールに問題があるように思わ
Dockerfile:
FROM python:2.7
RUN apt-get update
RUN apt-get install -y build-essential
RUN apt-get install -y python-dev
RUN apt-get install -y libmysqlclient-dev
RUN mkdir /code
ADD . /code/
WORKDIR /code
RUN pip install -r requirements.txt
CMD ["sh","./deploy.sh"]
EXPOSE 8888
deploy.sh:
#!/bin/sh
python manage.py collectstatic --noinput
python manage.py migrate --noinput
python main.py
RUN python manage.py collectstatic --noinput
でDockerコマンドを実行すると問題はありませんが、CMD
コールでアプリケーション固有のコマンドを取得しようとしています。私の展開用にElastic Beanstalkのデータベース環境変数が必要です。環境。
何もありませんか?私はそれを理解することができません。 – Cognoscis
エディタがシェルスクリプトに 'CR'文字を挿入していないことを確認してください。バージョニングソフトウェアが正しく設定されている場合は、in/outのチェックに正しい行末があることを確認する必要があります。 '.gitattributes'ファイル' * text = auto'と '* .sh text eol = lf'に追加しました。しかし、エディタがまだ 'LF'の代わりに' CRLF'を追加しているのであれば、それは自分自身では修正されませんが、それは私の大きな問題でした。 –
返信いただきありがとうございます。次回はこれを覚えておきます – Cognoscis