ドッカーを使ってlocalhost:8000でjavascriptアプリケーションを実行しようとしています。私がしたいことの一部は、ドッカーの実行コマンドに基づいていくつかの設定ファイルを交換することです、私はbashスクリプトがパラメータとして使用できるように、コンテナに環境変数を渡したいと思います。私dockerfileは次のように探しているものNGINXドッカーのコンテナで起動する前にbashスクリプトを実行する
はこれです:
FROM nginx
COPY . /usr/share/nginx/html
CMD ["bash","/usr/share/nginx/html/runfile.sh"]
そして、bashスクリプトは次のようになります。
#!/bin/bash
if [ "$SECURITY_VERSION" = "OPENAM" ]; then
sed -i -e 's/localhost/openam/g' authConfig.js
fi
docker run -p 8000:80 missioncontrol:latest -e SECURITY_VERSION="TEST"
ドッカーは私には見られない-e EXECコマンドを言って例外を提供します。
ただし、CMDの代わりにENTRYPOINTを使用するようにドッカーファイルを変更すると、-eフラグは機能しますが、Webサーバーは起動しません。
ここに何か不足していますか? ENTRYPOINTはオーバーライドされていますか?
EDIT:
だから私はENTRYPOINT ["bash","/usr/share/nginx/html/runfile.sh", ";", " nginx -g daemon off;"]
を使用するように私のdockerfileを更新しました。しかしドッキングウィンドウコンテナがまだシャットダウンします。私は行方不明のものがありますか?
本当に '-e'が本当に欲しいとは思わないでしょう。 'RUN/usr/share/nginx/html/runfile.sh'のように、' CMD'ではなく 'RUN'が必要なのでしょうか? –
しかし、ドッカーの実行コマンドから値を渡したいのですが、-eよりも良い方法がありますか? 私は考えられていた8000は、-p 'ドッカラン:80 missioncontrol: "/usr/share/nginx/html/runfile.sh OPENAM"' -c最新の/ binに/ bashが しかし、ウェブサーバが起動しませんでした – chiloutus
私はsedコマンドについて話していました。 :P –