Пример пайплайна для работы с плагином для кубернетиса. Собираем maven проект, создаем докер образ с полученным артефактом и пушаем это в хранилище докер образов.
Pipeline:
podTemplate( containers: [ containerTemplate( name: 'maven', image: 'maven:latest', command: 'cat', ttyEnabled: true), containerTemplate( name: 'docker', image: 'docker:latest', command: 'cat', ttyEnabled: true, envVars: [ secretEnvVar(key: 'DOCKER_LOGIN', secretName: 'docker-regestry-credentials', secretKey: 'username'), secretEnvVar(key: 'DOCKER_PASSWORD', secretName: 'docker-regestry-credentials', secretKey: 'password'), envVar(key: 'DOCKER_REGESTRY_URL', value: 'docker.artem.services'), envVar(key: 'DOCKER_REPO', value: 'artem') ] ) ], volumes: [ hostPathVolume( hostPath: '/var/run/docker.sock', mountPath: '/var/run/docker.sock')] ) { node(POD_LABEL) { stage('Get a Maven project') { git 'https://git.artem.services/artem/maven-project.git' container('maven') { stage('Build a Maven project') { sh 'mvn -B clean install' } } } stage('Build Docker image') { container('docker') { writeFile file: "Dockerfile", text: """ FROM tomcat:jdk8 COPY ./web/target/*.war /usr/local/tomcat/webapps/ """ sh "docker build -t \$DOCKER_REGESTRY_URL/\$DOCKER_REPO/maven:${env.BUILD_ID} ." sh "docker login -u \$DOCKER_LOGIN -p \$DOCKER_PASSWORD \$DOCKER_REGESTRY_URL" sh "docker push \$DOCKER_REGESTRY_URL/\$DOCKER_REPO/maven:${env.BUILD_ID}" } } } }
Dockerfile — создается уже в самом пайплане.
envVar — берутся из секрета кубернетиса