2017-05-24 7 views
0

Jenkinsパイプラインでドッキング用のコンテナを実行しようとしています。Jenkinsドッカー - コンテナの実行、シェルスクリプトの実行など

私は私のJenkinsfileに次のようにあります:test-gatling.sh

stage('test') { 
steps { 
    script { 
    parallel (
     "gatling" : { 
      sh 'bash ./test-gatling.sh' 
    }, 
     "python" : { 
      sh 'bash ./test-python.sh' 
    }) 
       } 
     } 
     } 

私はこれを持っている:

#!/bin/bash 
docker cp RecordedSimulation.scala denvazh/gatling:/RecordedSimulation.scala 
docker run -it -m denvazh/gatling /bin/bash 
ls 
./gatling.sh 

lsコマンドは、テストのためだけに存在し、それが実行されますときに、ファイルが一覧表示され、 denvazh/gatlingコンテナ内のファイルではなく、自分のgithubリポジトリのフォルダに移動します。何故ですか?私はdocker run -it [...]コマンドがその中でコマンドを実行できるようにコンテナを開くと思いましたか?

================

はまた、どのように私は、コンテナを実行し、ちょうどそれがその中に任意のコマンドを実行せずに、実行されていますか? (Jenkinsパイプラインで)

実行したい:docker run -d -p 8080:8080 -t [my_container]そしてポート8080にアクセスしてください。どうすればいいですか?誰もが同じまたは類似の問題がある場合は

+0

問題はbashスクリプトにあります。あなたのドッカーでは "/ bin/bash"コマンドだけが実行されます。以下の行は、あなたが呼び出したbin/bashの中で自動的には実行されません。 –

+0

私はしばしば、私のJenkinsfile内で複数の 'ドッカーを作って実行する.....いくつかのコマンドを実行します。 –

答えて

0

、ここでの答えは:

  1. 使用docker exec [name of container]コマンドは、とのことができるようにするには/bin/bash -c "[command]"

  2. を追加し、コンテナ内の任意の端末のコマンドを実行します2番目のコンテナから任意のポートで実行されているコンテナ/アプリケーションにアクセスします.2番目のコンテナを起動するときに--net=hostパラメータで実行します。

関連する問題