﻿
{"id":14691,"date":"2020-03-29T21:34:49","date_gmt":"2020-03-29T21:34:49","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=14691"},"modified":"2020-03-29T21:34:49","modified_gmt":"2020-03-29T21:34:49","slug":"dockerignore-dosyasi-nedir-nasil-kullanilir","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/dockerignore-dosyasi-nedir-nasil-kullanilir\/","title":{"rendered":".dockerignore Dosyas\u0131 Nedir? Nas\u0131l Kullan\u0131l\u0131r?"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde Docker imagelerimizi gereksiz dosyalardan ar\u0131nd\u0131rmam\u0131z\u0131 sa\u011flayan <em>.dockerignore<\/em> dosyas\u0131 \u00fczerine konu\u015fuyor olaca\u011f\u0131z.<\/p>\n<p><strong>.dockerignore Nedir?<\/strong><br \/>\n.dockerignore dosyas\u0131, Docker CLI ile ger\u00e7ekle\u015ftirilen image build i\u015fleminde kopyalamaya tabi tutulan uygulama dosyalar\u0131 aras\u0131nda boyutu l\u00fczumsuz yere \u015fi\u015firen ve bunun yan\u0131nda kritik arz eden dosya ve klas\u00f6rleri ar\u0131nd\u0131rma g\u00f6revi g\u00f6ren \u00f6zelle\u015ftirilmi\u015f bir dosyad\u0131r.<\/p>\n<p><strong>Nas\u0131l Kullan\u0131l\u0131r?<\/strong><br \/>\nDocker CLI, ald\u0131\u011f\u0131 bir build talimat\u0131n\u0131 i\u015flemeden \u00f6nce uygulaman\u0131n root dizininde .dockerignore isimli bir dosyay\u0131 arar. E\u011fer dosya mevcutsa, i\u00e7erisindeki belirtilen dosya ve klas\u00f6r dizinlerinin \u00fcretilecek image i\u00e7erisine kopyalanmas\u0131n\u0131 engeller.<\/p>\n<p>Dosya ve klas\u00f6r dizinlerini belirtebilmek i\u00e7in i\u00e7erik olarak a\u015fa\u011f\u0131daki formatlar\u0131 kullanabilirsiniz.<\/p>\n<table>\n<thead>\n<tr>\n<th>Format<\/th>\n<th>Davran\u0131\u015f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"font-weight: bold\">*# yorum sat\u0131r\u0131<\/td>\n<td style=\"text-align:left;\">Yorum sat\u0131r\u0131 olu\u015fturur.<\/td>\n<\/tr>\n<tr>\n<td style=\"font-weight: bold\">*\/ornek*<\/td>\n<td style=\"text-align:left;\">Ana dizinde ad\u0131 &#8216;ornek&#8217; ile ba\u015flay\u0131p devam\u0131 herhangi bir \u015fey olan t\u00fcm dosyalar\u0131 ar\u0131nd\u0131r\u0131r.<\/td>\n<\/tr>\n<tr>\n<td style=\"font-weight: bold\">ornek?<\/td>\n<td style=\"text-align:left;\">&#8216;ornek&#8217; ile ba\u015flay\u0131p bir sonraki karakteri herhangi bir \u015fey olan t\u00fcm dosyalar\u0131 ar\u0131nd\u0131r\u0131r.<\/td>\n<\/tr>\n<tr>\n<td style=\"font-weight: bold\"><span style=\"color:red;\">**<\/span>\/ornek\/<\/td>\n<td style=\"text-align:left;\">Hangi dizinde olursa olsun &#8216;ornek&#8217; isimli klas\u00f6r(leri) ar\u0131nd\u0131r\u0131r.<\/td>\n<\/tr>\n<tr>\n<td style=\"font-weight: bold\"><span style=\"color:red;\">**<\/span>\/ornek*<\/td>\n<td style=\"text-align:left;\">Hangi dizinde olursa olsun ba\u015f\u0131 &#8216;ornek&#8217; ile ba\u015flay\u0131p devam\u0131 herhangi bir \u015fey olan t\u00fcm dosyalar\u0131 ar\u0131nd\u0131r\u0131r..<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Dikkat ederseniz buradaki k\u0131rm\u0131z\u0131yla yaz\u0131lm\u0131\u015f <span style=\"color:red;\">**<\/span> d\u0131\u015f\u0131ndaki t\u00fcm e\u015fle\u015fmeler Go dilinin <a href=\"https:\/\/golang.org\/pkg\/path\/filepath\/#Match\" rel=\"noopener noreferrer\" target=\"_blank\">filepath.Match<\/a> kurallar\u0131 kullan\u0131larak yap\u0131lmaktad\u0131r. <span style=\"color:red;\">**<\/span> ise Docker&#8217;a \u00f6zel n say\u0131da dizi taray\u0131c\u0131 operat\u00f6r\u00fcd\u00fcr. Root dizininden ba\u015flay\u0131p belirtilen klas\u00f6r ya da dosyay\u0131 bulana kadar taramay\u0131 ger\u00e7ekle\u015ftirmektedir.<\/p>\n<p>A\u015fa\u011f\u0131daki \u00f6rnek kod blo\u011funu incelerseniz e\u011fer;<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n    *.md\r\n    !Sifre.md\r\n<\/pre>\n<p>T\u00fcm &#8216;.md&#8217; uzant\u0131l\u0131 dosyalar\u0131n ar\u0131nd\u0131r\u0131laca\u011f\u0131 bildirilmi\u015ftir. Lakin &#8216;Sifre.md&#8217; isimli dosya <span style=\"color:red;\">!<\/span> operat\u00f6r\u00fc ile istisna olarak belirtilmi\u015f ve ar\u0131nd\u0131r\u0131lmas\u0131 engellenmi\u015ftir.<\/p>\n<blockquote style=\"color:gray;\"><p>.dockerignore ile Dockerfile dosyas\u0131n\u0131n ve kendisinin image i\u00e7erisine kopyalanmas\u0131n\u0131 engelleyebilir ve b\u00f6ylece Docker CLI ile bu dosyalar\u0131n sadece i\u015flenmesini ama fiziksel olarak kopyalanmamas\u0131n\u0131 sa\u011flayabilirsiniz.<\/p><\/blockquote>\n<p>Genel bir \u00f6rnek yapmam\u0131z gerekirse e\u011fer a\u015fa\u011f\u0131da tan\u0131mlanan .dockerignore i\u00e7eri\u011findeki;<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n# Hariciler\r\n**\/bin\/\r\n**\/obj\/\r\n**\/Dockerfile*\r\n**\/.dockerignore*\r\n<\/pre>\n<p>dosyalar\u0131n\u0131 hari\u00e7 tuttu\u011fumuz bir image nesnesinde a\u015fa\u011f\u0131daki boyut fark\u0131n\u0131 g\u00f6rebilirsiniz.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/dockerignore-Dosyas\u0131-Nedir-Nas\u0131l-Kullan\u0131l\u0131r..jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/dockerignore-Dosyas\u0131-Nedir-Nas\u0131l-Kullan\u0131l\u0131r..jpg\" alt=\".dockerignore Dosyas\u0131 Nedir? Nas\u0131l Kullan\u0131l\u0131r?\" width=\"1109\" height=\"99\" class=\"alignnone size-full wp-image-14714\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/dockerignore-Dosyas\u0131-Nedir-Nas\u0131l-Kullan\u0131l\u0131r..jpg 1109w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/dockerignore-Dosyas\u0131-Nedir-Nas\u0131l-Kullan\u0131l\u0131r.-300x27.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/dockerignore-Dosyas\u0131-Nedir-Nas\u0131l-Kullan\u0131l\u0131r.-1024x91.jpg 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/dockerignore-Dosyas\u0131-Nedir-Nas\u0131l-Kullan\u0131l\u0131r.-768x69.jpg 768w\" sizes=\"auto, (max-width: 1109px) 100vw, 1109px\" \/><\/a><\/p>\n<p>B\u00f6ylece bir \u00f6nceki makalede kaleme ald\u0131\u011f\u0131m\u0131z <a href=\"https:\/\/www.gencayyildiz.com\/blog\/docker-multistage-build-nedir\/\" rel=\"noopener noreferrer\" target=\"_blank\">Multistage Build<\/a> konusunda oldu\u011fu gibi .dockerignore dosyas\u0131ylada image boyutunu k\u00fc\u00e7\u00fcltmeyi hedeflemekte ve asgari boyutta olsada bu gayeye bir nebze hizmet etmi\u015f bulunmaktay\u0131z.<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde Docker imagelerimizi gereksiz dosyalardan ar\u0131nd\u0131rmam\u0131z\u0131 sa\u011flayan .dockerignore dosyas\u0131 \u00fczerine konu\u015fuyor olaca\u011f\u0131z. .dockerignore Nedir? .dockerignore dosyas\u0131, Docker CLI ile ger\u00e7ekle\u015ftirilen image build i\u015fleminde kopyalamaya tabi tutulan uygulama dosyalar\u0131 aras\u0131nda boyutu l\u00fczumsuz yere&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":14719,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3281],"tags":[3342,3344,3343],"class_list":["post-14691","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-docker","tag-dockerignore","tag-dockerignore-nasil-olusturulur","tag-dockerignore-nedir"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/14691","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=14691"}],"version-history":[{"count":27,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/14691\/revisions"}],"predecessor-version":[{"id":14720,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/14691\/revisions\/14720"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/14719"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=14691"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=14691"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=14691"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}