﻿
{"id":14475,"date":"2020-03-24T10:50:38","date_gmt":"2020-03-24T10:50:38","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=14475"},"modified":"2020-03-25T10:03:22","modified_gmt":"2020-03-25T10:03:22","slug":"net-core-uygulamasini-dockerize-etmek-dockerfile-dosyasi-nasil-olusturulur","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/net-core-uygulamasini-dockerize-etmek-dockerfile-dosyasi-nasil-olusturulur\/","title":{"rendered":".NET Core Uygulamas\u0131n\u0131 Dockerize Etmek &#8211; Dockerfile Dosyas\u0131 Nas\u0131l Olu\u015fturulur?"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/net-core-docker-yazi-dizisi\/\" target=\"_blank\" rel=\"noopener noreferrer\">.NET Core &amp; Docker yaz\u0131 dizimizin<\/a> bu 5. makalesinde art\u0131k basit bir uygulamay\u0131 dockerize edebilmenin ilk ad\u0131m\u0131 olan Dockerfile dosyas\u0131n\u0131n nas\u0131l olu\u015fturuldu\u011funu inceleyece\u011fiz.<\/p>\n<p>Hat\u0131rlarsan\u0131z e\u011fer Dockerfile dosyas\u0131n\u0131n tan\u0131mlamas\u0131n\u0131 <a href=\"https:\/\/www.gencayyildiz.com\/blog\/dockerfile-docker-image-docker-registry-ve-docker-container-kavramlari-nelerdir\/\" target=\"_blank\" rel=\"noopener noreferrer\">buradaki<\/a> makalelemizde detayl\u0131ca yapm\u0131\u015f bulunmaktay\u0131z. Yinede bu makaleye hususi olarak bir tan\u0131m b\u0131rakmam\u0131z gerekirse e\u011fer;<\/p>\n<blockquote><p><em>&#8230; i\u00e7erisinde yay\u0131nlanacak olan uygulaman\u0131n nas\u0131l bir ortamda \u00e7al\u0131\u015faca\u011f\u0131na dair talimatlar\u0131 bar\u0131nd\u0131ran Docker projelerinin esas\u0131n\u0131 te\u015fkil eden \u00f6zel bir dosyad\u0131r&#8230;<\/em><\/p><\/blockquote>\n<p>\u015feklinde bir tarif san\u0131r\u0131m dizideki bu makalenin d\u00fczeyi i\u00e7in olduk\u00e7a yeterli ve hat\u0131rlat\u0131c\u0131d\u0131r kanaatindeyim.<\/p>\n<p>Dockerize edece\u011fimiz .NET Core uygulamas\u0131na gelirsek e\u011fer bu a\u015fa\u011f\u0131daki gibi basit bir kod bar\u0131nd\u0131ran Console uygulamas\u0131 olacakt\u0131r.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    class Program\r\n    {\r\n        static void Main(string&#x5B;] args)\r\n        {\r\n            while (true)\r\n            {\r\n                Console.WriteLine(DateTime.Now.Second);\r\n                Thread.Sleep(1000);\r\n            }\r\n        }\r\n    }\r\n<\/pre>\n<p>\u015eimdi ad\u0131m ad\u0131m bir Dockerfile dosyas\u0131n\u0131 olu\u015ftururken yap\u0131lmas\u0131 ve dikkat edilmesi gereken hususlar\u0131 inceleyelim;<\/p>\n<ul>\n<li><strong>Ad\u0131m 1<\/strong> <em style=\"color: green;\">Uygulamay\u0131 publish etme<\/em><br \/>\nDockerfile dosyas\u0131na yaz\u0131lacak talimatlarda kullanabilmemiz i\u00e7in \u00f6ncelikle uygulaman\u0131n publish edilmi\u015f datas\u0131na ihtiyac\u0131m\u0131z olacakt\u0131r.Bunun i\u00e7in projeye sa\u011f t\u0131klayarak s\u0131ras\u0131yla <em>&#8216;Publish&#8217; -&gt; &#8216;Folder&#8217; -&gt; &#8216;Create Profile&#8217; -&gt; &#8216;Publish&#8217;<\/em> kombinasyonunu takip etmeniz yeterlidir.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-14485\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur.jpg\" alt=\".NET Core Uygulamas\u0131n\u0131 Dockerize Etmek - Dockerfile Dosyas\u0131 Nas\u0131l Olu\u015fturulur?\" width=\"1335\" height=\"305\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur.jpg 1335w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-300x69.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-1024x234.jpg 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-768x175.jpg 768w\" sizes=\"auto, (max-width: 1335px) 100vw, 1335px\" \/><\/a><\/p>\n<p>Burada productiona y\u00f6nelik bir i\u015flem ama\u00e7land\u0131\u011f\u0131ndan dolay\u0131 yap\u0131lacak publish konfigurasyonunun \u00f6zellikle realese olmas\u0131na dikkat ediniz. &#8216;<em>Peki hoca, Debug ile Realese aras\u0131ndaki fark nedir?<\/em>&#8216; sualine tak\u0131l\u0131rsan\u0131z e\u011fer hadi s\u0131ras\u0131 gelmi\u015fken bununda cevab\u0131n\u0131 araya k\u0131saca s\u0131k\u0131\u015ft\u0131ral\u0131m.<\/p>\n<p>Debug; Hata ay\u0131klamaya y\u00f6nelik uygulamay\u0131 derlemek ve \u00e7\u0131kt\u0131 almakt\u0131r.<br \/>\nRealese; Production&#8217;a y\u00f6nelik uygulamay\u0131 derlemek ve \u00e7\u0131kt\u0131 almakt\u0131r.<\/p>\n<p>Velhas\u0131l uygulamay\u0131 publish ettikten sonra uygulaman\u0131n dizinine girdi\u011finizde <em style=\"font-size: 12px;\">&#8216;\\bin\\Realese\\netcoreapp3.1(de\u011fi\u015fkenlik g\u00f6sterebilir)\\publish&#8217;<\/em> yolunu takip ederseniz uygulaman\u0131n derlenmi\u015f \u00e7\u0131kt\u0131s\u0131n\u0131 elde edebilirsiniz.<\/li>\n<li><strong>Ad\u0131m 2<\/strong> <em style=\"color: green;\">Dockerfile dosyas\u0131n\u0131 olu\u015fturma<\/em><br \/>\nUygulamaya Dockerfile dosyas\u0131n\u0131 ekleyebilmek i\u00e7in projeye sa\u011f t\u0131klad\u0131ktan sonra &#8216;Add&#8217; -&gt; &#8216;Docker Support&#8230;&#8217; -&gt; &#8216;Linux&#8217; kombinasyonunu se\u00e7ip OK butonuna t\u0131klaman\u0131z yeterlidir.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-14495\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-1.jpg\" alt=\".NET Core Uygulamas\u0131n\u0131 Dockerize Etmek - Dockerfile Dosyas\u0131 Nas\u0131l Olu\u015fturulur?\" width=\"1012\" height=\"355\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-1.jpg 1012w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-1-300x105.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-1-768x269.jpg 768w\" sizes=\"auto, (max-width: 1012px) 100vw, 1012px\" \/><\/a>Evet&#8230; G\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere i\u015fletim sistemi olarak Windows&#8217;u de\u011fil Linux i\u015fletim sistemini se\u00e7mi\u015f bulunmaktay\u0131z. Neden mi? \u00c7\u00fcnk\u00fc Linux imageler Windows imagelere nazaran daha k\u00fc\u00e7\u00fck boyutlarda olduklar\u0131 i\u00e7in&#8230; Ayr\u0131ca .NET Core sayesinde Cross platformda \u00e7al\u0131\u015fman\u0131n getirdi\u011fi bu avantaj\u0131 de\u011ferlendirmekteyiz. Tabi ki de .NET Core de\u011filde standart framework \u00fczerinde geli\u015ftirilen bir uygulamay\u0131 Windows \u00fczerinde \u00e7al\u0131\u015ft\u0131rmam\u0131z gerekti\u011fini unutmayal\u0131m.<\/p>\n<p>Velhas\u0131l bu i\u015flemide ger\u00e7ekle\u015ftirdikten sonra Solution Explorer penceresinden bakarsan\u0131z e\u011fer uygulamaya bir Dockerfile dosyas\u0131n\u0131n eklendi\u011fini g\u00f6rm\u00fc\u015f olacaks\u0131n\u0131z.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-14501\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-2.jpg\" alt=\".NET Core Uygulamas\u0131n\u0131 Dockerize Etmek - Dockerfile Dosyas\u0131 Nas\u0131l Olu\u015fturulur?\" width=\"205\" height=\"179\" \/><\/a><\/p>\n<p>\u015eimdi bu Dockerfile dosyas\u0131 i\u00e7erisinde uygulamaya dair gerekli talimatlar\u0131m\u0131z\u0131 belirtece\u011fiz. Tabi ilk olarak siz ilgili dosyay\u0131 a\u00e7\u0131n ve i\u00e7erisinde var olan haz\u0131r t\u00fcm komutlar\u0131 temizleyin.<\/p>\n<p>\u015eimdi neye ihtiyac\u0131m\u0131z var? d\u00fc\u015f\u00fcnelim&#8230; \u0130\u00e7erisinde .NET Core k\u00fct\u00fcphaneleri bulunan bir Linux i\u015fletim sistemine&#8230; Yani bir image&#8217;e. Evet her ne kadar biz bu image&#8217;i kendimiz olu\u015fturabiliyor olsakta Docker Registry \u00fczerinden Microsoft&#8217;un bizlere sa\u011flad\u0131\u011f\u0131 haz\u0131r image&#8217;i kullanman\u0131z\u0131 tavsiye ederim. Bunun i\u00e7in <a href=\"https:\/\/hub.docker.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">hub.docker.com<\/a> sitesine giderek a\u00e7t\u0131\u011f\u0131n\u0131z hesap \u00fczerinden giri\u015f yap\u0131n\u0131z ve search k\u0131sm\u0131nda &#8216;.net core runtime&#8217; keyword\u00fcn\u00fc yaz\u0131n\u0131z.<\/p>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-14503\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-3.jpg\" alt=\".NET Core Uygulamas\u0131n\u0131 Dockerize Etmek - Dockerfile Dosyas\u0131 Nas\u0131l Olu\u015fturulur?\" width=\"1290\" height=\"397\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-3.jpg 1290w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-3-300x92.jpg 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-3-1024x315.jpg 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2020\/03\/NET-Core-Uygulamas\u0131n\u0131-Dockerize-Etmek-Dockerfile-Dosyas\u0131-Nas\u0131l-Olu\u015fturulur-3-768x236.jpg 768w\" sizes=\"auto, (max-width: 1290px) 100vw, 1290px\" \/><\/a><\/p>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi Docker Registry \u00fczerinde bulunan haz\u0131r bir image \ud83d\ude09 \u015e\u00f6yle incelerseniz e\u011fer docker registry \u00fczerinden bu image&#8217;i nas\u0131l indirebilece\u011fimize dair sa\u011f tarafta bir kod sunulmu\u015f bulunmaktad\u0131r.<\/li>\n<li><strong>Ad\u0131m 3<\/strong> <em style=\"color: green;\">Data Registry&#8217;den ilgili image&#8217;i \u00e7ek talimat\u0131<\/em><br \/>\nArt\u0131k s\u0131ra Dockerfile dosyas\u0131na gerekli talimatlar\u0131 vermeye geldi. \u0130lk olarak yukar\u0131da buldu\u011fumuz image&#8217;i data registry \u00fczerinden \u00e7ekmesini s\u00f6yleyece\u011fiz. B\u00f6ylece base image&#8217;i belirlemi\u015f olaca\u011f\u0131z.Bunun i\u00e7in a\u015fa\u011f\u0131daki prototipte komut vermemiz yeterlidir.<\/p>\n<p><strong style=\"font-size: 10px;\"><u>PROTOT\u0130P<\/u><\/strong><br \/>\n<em>FROM -Image Yolu-<\/em><\/p>\n<p><strong style=\"font-size: 10px; color: red;\"><u>KOD<\/u><\/strong><br \/>\n<code style=\"color: red;\"><strong>FROM mcr.microsoft.com\/dotnet\/core\/runtime:3.1<\/strong><\/code><\/p>\n<p>Burada &#8216;docker pull&#8217; komutu olmaks\u0131z\u0131n sadece yolun ve ilgili imaj\u0131n s\u00fcr\u00fcm\u00fcn\u00fcn belirtildi\u011fine dikkatinizi \u00e7ekerim.<\/p>\n<p>Bu komutu yazd\u0131ktan sonra Dockerfile i\u00e7erisindeki her bir sat\u0131ra kar\u015f\u0131l\u0131k image&#8217;de katman olu\u015fmas\u0131ndan dolay\u0131 ilk katman\u0131m\u0131z\u0131 olu\u015fturmu\u015f oluyoruz.<\/li>\n<li><strong>Ad\u0131m 4<\/strong> <em style=\"color: green;\">\u00c7al\u0131\u015fma klas\u00f6r\u00fc olu\u015ftur talimat\u0131<\/em><br \/>\nS\u0131rada uygulamaya dair bir \u00e7al\u0131\u015fma klas\u00f6r\u00fc olu\u015fturma var. Bunun i\u00e7in kod prototipimiz a\u015fa\u011f\u0131daki gibi olacakt\u0131r.<strong style=\"font-size: 10px;\"><u>PROTOT\u0130P<\/u><\/strong><br \/>\n<em>WORKDIR -path-<\/em><\/p>\n<p><strong style=\"font-size: 10px; color: red;\"><u>KOD<\/u><\/strong><br \/>\n<code style=\"color: red;\"><strong>WORKDIR \/app<\/strong><\/code><\/li>\n<li><strong>Ad\u0131m 5<\/strong> <em style=\"color: green;\">Publish dosyalar\u0131n\u0131 ta\u015f\u0131 talimat\u0131<\/em><br \/>\nS\u0131ra olu\u015fturulan \/app dizinine uygulaman\u0131n publish datalar\u0131n\u0131 ta\u015f\u0131maya geldi.<strong style=\"font-size: 10px;\"><u>PROTOT\u0130P<\/u><\/strong><br \/>\n<em>COPY -publish path- -target path-<\/em><\/p>\n<p><strong style=\"font-size: 10px; color: red;\"><u>KOD<\/u><\/strong><br \/>\n<code style=\"color: red;\"><strong>COPY \/bin\/Release\/netcoreapp3.1\/publish \/app<\/strong><\/code><\/li>\n<li><strong>Ad\u0131m 6<\/strong> <em style=\"color: green;\">\u00c7al\u0131\u015ft\u0131r\u0131lacak .dll talimat\u0131<\/em><br \/>\nBu Dockerfile dosyas\u0131 \u00fczerinden \u00fcretilecek Image&#8217;den(sonraki yaz\u0131da g\u00f6rece\u011fiz) aya\u011fa kald\u0131r\u0131lacak Container&#8217;da(bi sonraki yaz\u0131da g\u00f6rece\u011fiz) hangi .dll dosyas\u0131n\u0131n \u00e7al\u0131\u015ft\u0131r\u0131laca\u011f\u0131n\u0131 belirlememiz gerekmektedir.<strong style=\"font-size: 10px;\"><u>PROTOT\u0130P<\/u><\/strong><br \/>\n<em>ENTRYPOINT [&#8220;dotnet&#8221;, &#8220;dll path&#8221;]<\/em><\/p>\n<p><strong style=\"font-size: 10px; color: red;\"><u>KOD<\/u><\/strong><br \/>\n<code style=\"color: red;\"><strong>ENTRYPOINT [\"dotnet\", \"DockerizeExample.dll\"]<\/strong><\/code><\/li>\n<\/ul>\n<p>Ve b\u00f6ylece temel d\u00fczeyde bir Dockerfile dosyas\u0131n\u0131 tasarlam\u0131\u015f bulunmaktay\u0131z. Yukar\u0131da par\u00e7a par\u00e7a ele ald\u0131\u011f\u0131m\u0131z kodlar\u0131 toplay\u0131p a\u015fa\u011f\u0131da birle\u015ftirelim;<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nFROM mcr.microsoft.com\/dotnet\/core\/runtime:3.1\r\nWORKDIR \/app\r\nCOPY \/bin\/Release\/netcoreapp3.1\/publish \/app\r\nENTRYPOINT &#x5B;&quot;dotnet&quot;, &quot;DockerizeExample.dll&quot;]\r\n<\/pre>\n<p>\u0130\u015fte bu kadar&#8230;<\/p>\n<p>Olu\u015fturdu\u011fumuz Dockerfile dosyas\u0131na bakarsak e\u011fer 4 sat\u0131rl\u0131k talimat bar\u0131nd\u0131rmaktad\u0131r. Bu container aya\u011fa kalkarken olu\u015fturulan yaz\u0131labilir katmanla birlikte toplam 5 katmanl\u0131k bir \u00e7al\u0131\u015fma olaca\u011f\u0131n\u0131 g\u00f6stermektedir.<\/p>\n<p>Bu yaz\u0131m\u0131zda bir Dockerfile dosyas\u0131n\u0131n nas\u0131l olu\u015fturuldu\u011funu ve i\u00e7erisine yaz\u0131lan temel talimatlar\u0131n neler oldu\u011funu detayl\u0131ca incelemi\u015f bulunmaktay\u0131z. Bir sonraki yaz\u0131m\u0131zda bu Dockerfile dosyas\u0131ndaki talimatlara uygun imajlar olu\u015fturmay\u0131 detaylar\u0131yla ele alaca\u011f\u0131z. O halde siz bu yaz\u0131y\u0131 bitirene kadar bende di\u011fer makaleye ba\u015flam\u0131\u015f olurum \ud83d\ude42 G\u00f6r\u00fc\u015fmek \u00fczere&#8230;<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#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, .NET Core &amp; Docker yaz\u0131 dizimizin bu 5. makalesinde art\u0131k basit bir uygulamay\u0131 dockerize edebilmenin ilk ad\u0131m\u0131 olan Dockerfile dosyas\u0131n\u0131n nas\u0131l olu\u015fturuldu\u011funu inceleyece\u011fiz. Hat\u0131rlarsan\u0131z e\u011fer Dockerfile dosyas\u0131n\u0131n tan\u0131mlamas\u0131n\u0131 buradaki makalelemizde detayl\u0131ca yapm\u0131\u015f bulunmaktay\u0131z.&#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":14313,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2739,3033,3101,3281],"tags":[3284,3291,3314,3313,3300,3312],"class_list":["post-14475","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-net-core","category-net-core-3-0","category-net-core-3-1","category-docker","tag-docker","tag-dockerfile","tag-dockerfile-komutlari","tag-dockerfile-olusturma","tag-dockerize","tag-uygulama-dockerize-etmek"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/14475","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=14475"}],"version-history":[{"count":49,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/14475\/revisions"}],"predecessor-version":[{"id":14529,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/14475\/revisions\/14529"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/14313"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=14475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=14475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=14475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}