2017-08-30 12 views
0

私はパイプラインテストを私の持っているドッカーコンテナの内部(またはそれに対して)実行しようとしています。もともと私はDockerfileを使ってコンテナを作成していましたが、テストは常にジョブを実行するjenkinsノードに対して実行されます。私はjenkinsfileを何か標準を使うように修正しましたが、私が期待するものはまだ得られません。Docker Container内のJenkinsパイプラインテストを実行します。

私が最終的に達成しようとしていることである:

  1. は、容器上に私のPythonスクリプトを実行します
  2. がコンテナ
  3. に私のソースコードをコピーし
  4. ドッカコンテナを投げる

私は1つの&を持っていますが、3ではありません。今はコンテナに対してテストを実行できれば幸いです.Jenkinsfileをより簡単に変更したのはこのためです。

マイJenkinsfile:私はローカルdocker run node:7-alpine pwddocker run node:7-alpine ls -alを実行すると

pipeline { 
    agent { 
     docker { image 'node:7-alpine' } 
    } 
    stages { 
     stage('Test') { 
      steps { 
       sh 'pwd' 
       sh 'ls -al' 
      } 
     } 
    } 
} 

、私は以下の取得:

/ 

bin 
dev 
etc 
home 
lib 
linuxrc 
media 
mnt 
opt 
proc 
root 
run 
sbin 
srv 
sys 
tmp 
usr 
var 

しかし、ジェンキンスさんに私が手:

私の知る限り、これらのコマンドは、容器の中にジェンキンスから現在のディレクトリをマウントし、WORKDIRとして設定します知っているように
[test_job] Running shell script 
+ pwd 
/srv/jenkins/workspace/test_job 

[test_job] Running shell script 
+ ls -al 
total 36 
drwxr-x--- 4 5003  5003   4096 Aug 29 20:44 . 
drwxr-xr-x 4 root  root   4096 Aug 29 20:44 .. 
drwxr-x--- 8 5003  5003   4096 Aug 29 20:44 .git 
-rw-r----- 1 5003  5003   1184 Aug 29 19:24 .gitignore 
-rw-r----- 1 5003  5003   802 Aug 29 19:47 Dockerfile 
-rw-r----- 1 5003  5003   247 Aug 29 20:44 Jenkinsfile 
-rw-r----- 1 5003  5003   417 Aug 29 20:24 OriginalJenkinsfile 
-rw-r----- 1 5003  5003   2534 Aug 29 19:24 README.md 
drwxr-x--- 5 5003  5003   4096 Aug 29 19:24 framework 

答えて

0

。また、バグがあり、コンテナ内のディレクトリを切り替えることができません。

そのコンテナのルートディレクトリ

+0

に私がドッキングウィンドウパイプラインプラグインを使用していているものは何でもリストする必要がありlsと/試してみてください、私のコードは、実際にここで言及した最初の例である:https://jenkins.io/doc/book/pipeline/docker/- しかしテストステップは説明どおりに動作していません。 – cdm

+0

私の編集された答えを見てください。ドッカーコンテナのルートディレクトリが必要です。しかし、実際には、マウントされたディレクトリの内容を一覧表示します。 'ls /'を試してみてください – herm

関連する問題