で終わるDockerfileがあります
_ENTRYPOINT ["node", "index.js"]
CMD ["--help"]
_
_index.js
_はいくつかの異なる引数を取ることができ、コンテナのポートを公開する必要があるため、手動で実行する場合は次のようにします。
_docker run -p 3000:3000 my_container:latest --arg1 somearg --arg2 anotherarg
_
Jenkinsfileでこれを行うにはどうすればよいですか?テストはこのコンテナと通信するため、テストを実行する前に実行する必要があります。テストを実行する前にwithRun()
を使用して実行していますが、_--arg1 somearg --arg2 anotherarg
_の指定方法がわかりません
_stage('TestMicroservice') {
//
// HOW DO I SPECIFY '--arg1 somearg --arg2 anotherarg'?
//
docker.image("my_container:latest").withRun('-p 3000:3000') {
sh 'npm run test-microservice'
}
}
_
WithRunの2番目の引数を使用できます
.withRun('-p 3000:3000', '--arg1 somearg --arg2 anotherarg')
.withRun('-p 3000:3000', '--arg1 arg1 --arg2 arg2')
を使用します。このドキュメントはdocker-workflow-plugin here にあります。
コンテナ引数を渡すもう1つの方法は、insideメソッドを使用することです。以下は https://jenkins.io/doc/book/pipeline/docker/#caching-data-for-containers からの例です([Toggle Scripted Pipeline]リンクをクリックして表示します)。
node {
/* Requires the Docker Pipeline plugin to be installed */
docker.image('maven:3-Alpine').inside('-v $HOME/.m2:/root/.m2') {
stage('Build') {
sh 'mvn -B'
}
}
}