{"id":3456,"date":"2022-02-08T11:08:17","date_gmt":"2022-02-08T04:08:17","guid":{"rendered":"https:\/\/ton.packetlove.com\/blog\/?p=3456"},"modified":"2022-02-09T08:55:01","modified_gmt":"2022-02-09T01:55:01","slug":"trick-deploy-docker-images-with-jenkins-pipeline","status":"publish","type":"post","link":"https:\/\/ton.packetlove.com\/blog\/devops\/trick-deploy-docker-images-with-jenkins-pipeline.html","title":{"rendered":"[Trick] Deploy Docker Images with Jenkins Pipeline"},"content":{"rendered":"<figure id=\"attachment_3462\" aria-describedby=\"caption-attachment-3462\" style=\"width: 640px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ton.packetlove.com\/blog\/wp-content\/uploads\/2022\/02\/docker-jenkins-love-640x427.jpeg\" alt=\"\" width=\"640\" height=\"427\" class=\"size-medium wp-image-3462\" srcset=\"https:\/\/ton.packetlove.com\/blog\/wp-content\/uploads\/2022\/02\/docker-jenkins-love-640x427.jpeg 640w, https:\/\/ton.packetlove.com\/blog\/wp-content\/uploads\/2022\/02\/docker-jenkins-love-1024x683.jpeg 1024w, https:\/\/ton.packetlove.com\/blog\/wp-content\/uploads\/2022\/02\/docker-jenkins-love-768x512.jpeg 768w, https:\/\/ton.packetlove.com\/blog\/wp-content\/uploads\/2022\/02\/docker-jenkins-love-668x445.jpeg 668w, https:\/\/ton.packetlove.com\/blog\/wp-content\/uploads\/2022\/02\/docker-jenkins-love-100x67.jpeg 100w, https:\/\/ton.packetlove.com\/blog\/wp-content\/uploads\/2022\/02\/docker-jenkins-love.jpeg 1440w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption id=\"caption-attachment-3462\" class=\"wp-caption-text\">docker-jenkins-love<\/figcaption><\/figure>\n<p><strong>DevOps 101<\/strong> \u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e21\u0e32\u0e02\u0e2d\u0e40\u0e25\u0e48\u0e32\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 <strong>trick<\/strong> \u0e07\u0e48\u0e32\u0e22\u0e46 \u0e43\u0e19\u0e01\u0e32\u0e23 <strong>deploy docker images<\/strong> \u0e01\u0e31\u0e19\u0e04\u0e23\u0e31\u0e1a<\/p>\n<p>1. \u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 <strong>Time Zone<\/strong> \u0e42\u0e14\u0e22\u0e1b\u0e01\u0e15\u0e34\u0e41\u0e25\u0e49\u0e27 \u0e16\u0e49\u0e32\u0e40\u0e23\u0e32\u0e44\u0e21\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14 \u0e15\u0e31\u0e27 container \u0e17\u0e35\u0e48 run \u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19 UTC \u0e19\u0e30\u0e04\u0e23\u0e31\u0e1a \u0e43\u0e19\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07 \u0e16\u0e49\u0e32\u0e2d\u0e22\u0e32\u0e01\u0e43\u0e2b\u0e49 Time Zone \u0e15\u0e23\u0e07\u0e01\u0e31\u0e1a\u0e1a\u0e49\u0e32\u0e19\u0e40\u0e23\u0e32 (UTC +7) \u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16 \u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b \u0e01\u0e33\u0e2b\u0e19\u0e14\u0e44\u0e14\u0e49\u0e07\u0e48\u0e32\u0e22\u0e46 \u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e19\u0e35\u0e49\u0e04\u0e23\u0e31\u0e1a<br \/>\n<strong>Dockerfile<\/strong><\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-git\" data-lang=\"Git\"><code>FROM python:3.9\r\nENV TZ=\"Asia\/Bangkok\"\r\nRUN date<\/code><\/pre>\n<\/div>\n<p><strong>Build<\/strong><\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker build -t dockertest .<\/code><\/pre>\n<\/div>\n<p><strong>Run<\/strong><\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker run -it dockertest -c \"date\"<\/code><\/pre>\n<\/div>\n<p>\u0e16\u0e49\u0e32\u0e40\u0e1b\u0e47\u0e19 <strong>alpine based image<\/strong> \u0e08\u0e30\u0e15\u0e49\u0e2d\u0e07 <strong>install tzdata<\/strong> \u0e01\u0e48\u0e2d\u0e19 \u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e19\u0e35\u0e49\u0e04\u0e23\u0e31\u0e1a<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>RUN apk add --no-cache tzdata\r\nENV TZ Asia\/Bangkok<\/code><\/pre>\n<\/div>\n<p>2. \u0e40\u0e27\u0e25\u0e32 run docker \u0e14\u0e49\u0e27\u0e22 <strong>tag:latest<\/strong> \u0e41\u0e25\u0e49\u0e27 \u0e2d\u0e32\u0e08\u0e08\u0e30\u0e21\u0e35 \u0e01\u0e32\u0e23 cache \u0e1a\u0e19 local \u0e17\u0e33\u0e43\u0e2b\u0e49 \u0e44\u0e21\u0e48\u0e44\u0e14\u0e49 image \u0e25\u0e48\u0e32\u0e2a\u0e38\u0e14 \u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e41\u0e01\u0e49\u0e44\u0e02\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22 \u0e43\u0e2a\u0e48 options <strong>&#8211;pull=always<\/strong> \u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e0a\u0e48\u0e19<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>docker run --pull=always<\/code><\/pre>\n<\/div>\n<p>3. \u0e16\u0e49\u0e32\u0e2d\u0e22\u0e32\u0e01 run <strong>Jenkins Pipeliine<\/strong> \u0e41\u0e1a\u0e1a <strong>trigger \u0e14\u0e49\u0e27\u0e22 cron<\/strong> \u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e1e\u0e34\u0e48\u0e21 cron \u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b\u0e44\u0e14\u0e49 \u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e19\u0e35\u0e49 <\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>\r\npipeline {\r\n    agent any\r\n    triggers {\r\n        cron('00 20 * * *')\r\n    }\r\n\r\n    stages {\r\n        stage('Hello') {\r\n            steps {\r\n                echo 'Hello World'\r\n            }\r\n        }\r\n    }\r\n}<\/code><\/pre>\n<\/div>\n<p>\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23 <strong>Set Time Zone<\/strong> \u0e43\u0e19\u0e15\u0e31\u0e27 <strong>Jenkins<\/strong> \u0e40\u0e2d\u0e07 \u0e1c\u0e21\u0e40\u0e04\u0e22\u0e40\u0e02\u0e35\u0e22\u0e19\u0e23\u0e32\u0e22\u0e25\u0e30\u0e40\u0e2d\u0e35\u0e22\u0e14\u0e44\u0e27\u0e49\u0e41\u0e25\u0e49\u0e27\u0e04\u0e23\u0e31\u0e1a \u0e2d\u0e48\u0e32\u0e19\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e44\u0e14\u0e49\u0e17\u0e35\u0e48<br \/>\n<a href=\"https:\/\/ton.packetlove.com\/blog\/devops\/devops-101-jenkins-set-time-zone.html\">https:\/\/ton.packetlove.com\/blog\/devops\/devops-101-jenkins-set-time-zone.html<\/a><\/p>\n<p>\u0e2d\u0e31\u0e19\u0e19\u0e35\u0e49\u0e40\u0e1b\u0e47\u0e19 trick \u0e40\u0e25\u0e47\u0e01\u0e46 \u0e19\u0e49\u0e2d\u0e22\u0e46 \u0e17\u0e35\u0e48\u0e40\u0e2d\u0e32\u0e21\u0e32\u0e40\u0e25\u0e48\u0e32\u0e2a\u0e39\u0e48\u0e01\u0e31\u0e19\u0e1f\u0e31\u0e07\u0e19\u0e30\u0e04\u0e23\u0e31\u0e1a \u0e17\u0e35\u0e48\u0e40\u0e08\u0e2d\u0e15\u0e2d\u0e19 deploy app \u0e17\u0e35\u0e48\u0e40\u0e1b\u0e47\u0e19 docker images \u0e14\u0e49\u0e27\u0e22 Jenkins Pipeline \ud83d\ude42<\/p>\n<div class=\"fcbkbttn_buttons_block\" id=\"fcbkbttn_left\"><div class=\"fcbkbttn_like \"><fb:like href=\"https:\/\/ton.packetlove.com\/blog\/devops\/trick-deploy-docker-images-with-jenkins-pipeline.html\" action=\"like\" colorscheme=\"light\" layout=\"button_count\"  size=\"small\"><\/fb:like><\/div><div class=\"fb-share-button  \" data-href=\"https:\/\/ton.packetlove.com\/blog\/devops\/trick-deploy-docker-images-with-jenkins-pipeline.html\" data-type=\"button_count\" data-size=\"small\"><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>DevOps 101 \u0e27\u0e31\u0e19\u0e19\u0e35\u0e49 \u0e21\u0e32\u0e02\u0e2d\u0e40\u0e25\u0e48\u0e32\u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 trick \u0e07\u0e48\u0e32\u0e22\u0e46 \u0e43\u0e19\u0e01\u0e32\u0e23 deploy docker images \u0e01\u0e31\u0e19\u0e04\u0e23\u0e31\u0e1a 1. \u0e40\u0e23\u0e37\u0e48\u0e2d\u0e07 Time Zone \u0e42\u0e14\u0e22\u0e1b\u0e01\u0e15\u0e34\u0e41\u0e25\u0e49\u0e27 \u0e16\u0e49\u0e32\u0e40\u0e23\u0e32\u0e44\u0e21\u0e48\u0e01\u0e33\u0e2b\u0e19\u0e14 \u0e15\u0e31\u0e27 container \u0e17\u0e35\u0e48 run \u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19 UTC \u0e19\u0e30\u0e04\u0e23\u0e31\u0e1a \u0e43\u0e19\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07 \u0e16\u0e49\u0e32\u0e2d\u0e22\u0e32\u0e01\u0e43\u0e2b\u0e49 Time Zone \u0e15\u0e23\u0e07\u0e01\u0e31\u0e1a\u0e1a\u0e49\u0e32\u0e19\u0e40\u0e23\u0e32 (UTC +7) \u0e40\u0e23\u0e32\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16 \u0e40\u0e02\u0e49\u0e32\u0e44\u0e1b \u0e01\u0e33\u0e2b\u0e19\u0e14\u0e44\u0e14\u0e49\u0e07\u0e48\u0e32\u0e22\u0e46 \u0e1b\u0e23\u0e30\u0e21\u0e32\u0e13\u0e19\u0e35\u0e49\u0e04\u0e23\u0e31\u0e1a Dockerfile FROM python:3.9 ENV TZ=&#8221;Asia\/Bangkok&#8221; RUN date Build docker build -t dockertest . Run docker run -it dockertest -c &#8220;date&#8221; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1080],"tags":[1060,1094,1065,1085],"class_list":["post-3456","post","type-post","status-publish","format-standard","hentry","category-devops","tag-devops","tag-devops101","tag-docker","tag-jenkins"],"_links":{"self":[{"href":"https:\/\/ton.packetlove.com\/blog\/wp-json\/wp\/v2\/posts\/3456","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ton.packetlove.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ton.packetlove.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ton.packetlove.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ton.packetlove.com\/blog\/wp-json\/wp\/v2\/comments?post=3456"}],"version-history":[{"count":9,"href":"https:\/\/ton.packetlove.com\/blog\/wp-json\/wp\/v2\/posts\/3456\/revisions"}],"predecessor-version":[{"id":3466,"href":"https:\/\/ton.packetlove.com\/blog\/wp-json\/wp\/v2\/posts\/3456\/revisions\/3466"}],"wp:attachment":[{"href":"https:\/\/ton.packetlove.com\/blog\/wp-json\/wp\/v2\/media?parent=3456"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ton.packetlove.com\/blog\/wp-json\/wp\/v2\/categories?post=3456"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ton.packetlove.com\/blog\/wp-json\/wp\/v2\/tags?post=3456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}