{"id":1409,"date":"2019-09-17T14:50:13","date_gmt":"2019-09-17T11:50:13","guid":{"rendered":"https:\/\/artem.services\/?p=1409"},"modified":"2019-09-17T14:50:13","modified_gmt":"2019-09-17T11:50:13","slug":"jenkins-kubernetes-plugin-%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80-%d1%81%d0%b1%d0%be%d1%80%d0%ba%d0%b8-%d0%be%d0%b1%d1%80%d0%b0%d0%b7%d0%b0-%d1%81-maven-%d0%bf%d1%80%d0%be%d0%b5%d0%ba%d1%82%d0%be","status":"publish","type":"post","link":"https:\/\/artem.services\/?p=1409","title":{"rendered":"Jenkins &#8212; Kubernetes plugin: \u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u0431\u043e\u0440\u043a\u0438 \u043e\u0431\u0440\u0430\u0437\u0430 \u0441 Maven \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u043c"},"content":{"rendered":"<p><img loading=\"lazy\" class=\"alignnone wp-image-819 size-full\" src=\"https:\/\/artem.services\/wp-content\/uploads\/2019\/02\/Jenkins-Logo.png\" alt=\"\" width=\"1280\" height=\"412\" srcset=\"https:\/\/artem.services\/wp-content\/uploads\/2019\/02\/Jenkins-Logo.png 1280w, https:\/\/artem.services\/wp-content\/uploads\/2019\/02\/Jenkins-Logo-300x97.png 300w, https:\/\/artem.services\/wp-content\/uploads\/2019\/02\/Jenkins-Logo-768x247.png 768w, https:\/\/artem.services\/wp-content\/uploads\/2019\/02\/Jenkins-Logo-1024x330.png 1024w, https:\/\/artem.services\/wp-content\/uploads\/2019\/02\/Jenkins-Logo-954x307.png 954w\" sizes=\"(max-width: 1280px) 100vw, 1280px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c \u0434\u043b\u044f \u043a\u0443\u0431\u0435\u0440\u043d\u0435\u0442\u0438\u0441\u0430. \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c maven \u043f\u0440\u043e\u0435\u043a\u0442, \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u043e\u043a\u0435\u0440 \u043e\u0431\u0440\u0430\u0437 \u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u043c \u0438 \u043f\u0443\u0448\u0430\u0435\u043c \u044d\u0442\u043e \u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u043e\u043a\u0435\u0440 \u043e\u0431\u0440\u0430\u0437\u043e\u0432.<\/p>\n<p>&nbsp;<\/p>\n<h3>Pipeline:<\/h3>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\npodTemplate(\r\n  containers: [\r\n    containerTemplate(\r\n      name: 'maven',\r\n      image: 'maven:latest',\r\n      command: 'cat',\r\n      ttyEnabled: true),\r\n    containerTemplate(\r\n      name: 'docker',\r\n      image: 'docker:latest',\r\n      command: 'cat',\r\n      ttyEnabled: true,\r\n      envVars: [\r\n        secretEnvVar(key: 'DOCKER_LOGIN', secretName: 'docker-regestry-credentials', secretKey: 'username'),\r\n        secretEnvVar(key: 'DOCKER_PASSWORD', secretName: 'docker-regestry-credentials', secretKey: 'password'),\r\n        envVar(key: 'DOCKER_REGESTRY_URL', value: 'docker.artem.services'),\r\n        envVar(key: 'DOCKER_REPO', value: 'artem')\r\n      ]\r\n    )\r\n  ],\r\n  volumes: [\r\n    hostPathVolume(\r\n      hostPath: '\/var\/run\/docker.sock',\r\n      mountPath: '\/var\/run\/docker.sock')]\r\n)\r\n{\r\n  node(POD_LABEL) {\r\n    stage('Get a Maven project') {\r\n      git 'https:\/\/git.artem.services\/artem\/maven-project.git'\r\n      container('maven') {\r\n        stage('Build a Maven project') {\r\n          sh 'mvn -B clean install'\r\n        }\r\n      }\r\n    }\r\n\r\n    stage('Build Docker image') {\r\n      container('docker') {\r\n        writeFile file: &quot;Dockerfile&quot;, text: &quot;&quot;&quot;\r\n            FROM tomcat:jdk8\r\n            COPY .\/web\/target\/*.war \/usr\/local\/tomcat\/webapps\/\r\n        &quot;&quot;&quot;\r\n        sh &quot;docker build -t \\$DOCKER_REGESTRY_URL\/\\$DOCKER_REPO\/maven:${env.BUILD_ID} .&quot;\r\n        sh &quot;docker login -u \\$DOCKER_LOGIN -p \\$DOCKER_PASSWORD \\$DOCKER_REGESTRY_URL&quot;\r\n        sh &quot;docker push \\$DOCKER_REGESTRY_URL\/\\$DOCKER_REPO\/maven:${env.BUILD_ID}&quot;\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<blockquote><p><strong>Dockerfile<\/strong> &#8212; \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0432 \u0441\u0430\u043c\u043e\u043c \u043f\u0430\u0439\u043f\u043b\u0430\u043d\u0435.<br \/>\n<strong>envVar<\/strong> &#8212; \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0438\u0437 \u0441\u0435\u043a\u0440\u0435\u0442\u0430 \u043a\u0443\u0431\u0435\u0440\u043d\u0435\u0442\u0438\u0441\u0430<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; \u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u043c \u0434\u043b\u044f \u043a\u0443\u0431\u0435\u0440\u043d\u0435\u0442\u0438\u0441\u0430. \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c maven \u043f\u0440\u043e\u0435\u043a\u0442, \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0434\u043e\u043a\u0435\u0440 \u043e\u0431\u0440\u0430\u0437 \u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u043c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u043c \u0438 \u043f\u0443\u0448\u0430\u0435\u043c \u044d\u0442\u043e \u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u043e\u043a\u0435\u0440 \u043e\u0431\u0440\u0430\u0437\u043e\u0432. &nbsp; Pipeline: &nbsp; Dockerfile &#8212; \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0443\u0436\u0435 \u0432 \u0441\u0430\u043c\u043e\u043c \u043f\u0430\u0439\u043f\u043b\u0430\u043d\u0435. envVar &#8212; \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0438\u0437 \u0441\u0435\u043a\u0440\u0435\u0442\u0430 \u043a\u0443\u0431\u0435\u0440\u043d\u0435\u0442\u0438\u0441\u0430<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[37],"tags":[125,17,581,1121,1123],"_links":{"self":[{"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/posts\/1409"}],"collection":[{"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/artem.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1409"}],"version-history":[{"count":1,"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/posts\/1409\/revisions"}],"predecessor-version":[{"id":1410,"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/posts\/1409\/revisions\/1410"}],"wp:attachment":[{"href":"https:\/\/artem.services\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/artem.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/artem.services\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}