2016-12-18 3 views
3

Gatling(Load Testingツール)+ NodeJSを使用して簡単なイメージ/コンテナをセットアップするためにDocker(バージョン1.12.2、ビルドbb80604)を使用しています。だから、私はthis Docker/Gatling base imageを引っ張って、独自のDockerfileを作成してNodeJSをインストールしました。Docker - ベースイメージからENTRYPOINTをオーバーライドまたは削除する

しかし、上記のDocker/Gatlingベースイメージでは、ENTRYPOINTがすでに定義されており、すぐにGatlingを呼び出してから自動的にコンテナを終了します。 (私自身のNodeJSスクリプトは、テスト結果を解析するために)、しかし、私は今のところ解決策を見つけることができませんでした私は、2番目のコマンドを実行したい:私は達成しようとしている何

ENTRYPOINT ["gatling.sh"] 

がある:それはこのようになります(ENTRYPOINTとCMDの異なる組み合わせを上書きしようとしましたが、成功しませんでした)。ここで

FROM denvazh/gatling:2.2.3 

RUN apk update \ 
&& apk add -U bash \ 
&& apk add nodejs=6.7.0-r0 

COPY simulations /opt/gatling/user-files/simulations 
COPY trigger-test-and-parser.sh /opt/gatling/ 

RUN chmod +x /opt/gatling/trigger-test-and-parser.sh 

ENTRYPOINT ["bash", "/opt/gatling/trigger-test-and-parser.sh"] 

私は私のDockerfileに基づいて私のイメージを構築するために使用しているコマンドです:

docker build --no-cache -t gatling-nodejs:v8 . 

そして、これは、コマンドIである。ここ

は私の現在のDockerfileがどのように見えるかです「私のコンテナを実行するために使用しては:m

docker run -i -v "$PWD/results":/opt/gatling/results -v "$PWD":/opt/gatling/git.campmon.com/rodrigot/platform-hps-perf-test gatling-nodejs:v8 

そして、これは私が好きなシェルスクリプト(trigger-test-and-parser.sh)でありますコンテナが開始されると(それはガトリングをトリガして、私のNodeJSパーサを実行する必要があります)一度実行する:

gatling.sh -s MicroserviceHPSPubSubRatePerfTest.scala 
node publish-rate-to-team-city.js 

任意のアイデアやひねりので、私は私のコンテナが起動したら、両方のコマンドを実行できますか?

ありがとうございます!

+1

があなたの 'ドッキングウィンドウのrun'は'ガトリング-nodejsで終わる:v7'それはタイプミスでしょうか?私はそれが7の代わりに8で終わると思った。 – user2915097

+0

それは、タイプミスです、申し訳ありません。ただ更新! :) – user2253130

+0

あなたのgatlin.sh 'cmd1を試してみてください。 cmd2;眠る無限 ' – user2915097

答えて

5

セットENTRYPOINTから/usr/bin/envです。次に、実行するものにCMDを設定します。

+0

素晴らしい!それは私のためにうまくいった!どうもありがとうございました! – user2253130

0

上記のグラハムの考えは、か​​なりうまく機能しました。再度、感謝します!今後の参考のために

、ここで私は私のDockerfileに追加する必要がありました2行です:

ENTRYPOINT ["/usr/bin/env"] 

CMD ["bash", "/opt/gatling/trigger-test-and-parse-result.sh"] 
関連する問題