<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های ابوراجا</title>
        <link>https://virgool.io/feed/@abooraja</link>
        <description>راهنمای سفر به کهکشان برنامه نویسی و خیلی چیزا :)</description>
        <language>fa</language>
        <pubDate>2026-06-16 17:56:51</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/62064/avatar/3HTwgq.png?height=120&amp;width=120</url>
            <title>ابوراجا</title>
            <link>https://virgool.io/@abooraja</link>
        </image>

                    <item>
                <title>این favicon چیست؟ چجوری برای سایتم آیکون بسازم؟ و آیا برای seo مهمه؟</title>
                <link>https://virgool.io/@abooraja/%D8%A7%DB%8C%D9%86-favicon-%DA%86%DB%8C%D8%B3%D8%AA-%DA%86%D8%AC%D9%88%D8%B1%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B3%D8%A7%DB%8C%D8%AA%D9%85-%D8%A2%DB%8C%DA%A9%D9%88%D9%86-%D8%A8%D8%B3%D8%A7%D8%B2%D9%85-%D9%88-%D8%A2%DB%8C%D8%A7-%D8%A8%D8%B1%D8%A7%DB%8C-seo-%D9%85%D9%87%D9%85%D9%87-geb929lhsfba</link>
                <description>اگه توی مرورگرتون توجه کرده باشید، هر سایتی برای خودش یه آیکن منحصر به فرد داره. و خب خیلی مهمه برای برندش و اینکه راحت پیداش کنیم توی تب های متعدد مرورگر. همچین وقتی بوکمارک میشه اون عکس رو نشون میده.به این آیکن اصطلاحا میگن favicon که مخفف favorites icon هست. البته اسم های دیگه ای هم بهش میگن مثلbrowser icon, favorite icon, shortcut icon, tab icon, URL icon, bookmark iconولی خب معروف ترینش همین favicon هست که تاریخچه ش به اینترنت اکسپلورر خدابیامرز برمیگرده.هر سایت یک آیکن یا favicon دارد که در تب مرورگر نمایش داده می شود.مرورگر انتظار داره که همه وب سایت ها این عکس رو داشته باشند و پیش فرض شروع میکنه به لود کردنش.این عکس میتونه png یا ico یا svg باشه و باید سایز کوچکی داشته باشه.نکته ico که فرمت فایل مایکروسافتی هست که معروف شده، این هست که در واقع شامل چندین فایل داخل خودش هست و مرورگر بسته به نیاز هر سایزی که بخواد رو انتخاب میکنه. معمولا سایزهای استاندارد شامل 16x16, 32x32, 48x48 pixels هستند. فرمت png باکیفیت تر از ico هست، ولی یک فایل رو شما میتونی معرفی کنی و خب توی سایزها و کاربردهای مختلف نمیتونی بهینه ش کنی.فرمت svg یک فرمت بُرداری یا verctor هست و معنیش اینه که در هر سایزی بخوایم میتونیم بدون افت کیفیت بزرگش کنیم. فقط چون نسبتا جدید محسوب میشه، ممکنه مرورگرهای قدیمی پشتیبانی نکنن.اگر ما هم بخواهیم برای سایتمون بسازیم باید چکار کنیم؟ابزارهای آنلاین زیادی هستند که به شما در ساخت این فایل کمک میکنند. اگر در گوگل عبارت favicon online generator رو جستجو کنید، سایت های زیادی رو میبینید و اکثرا رایگان هستند.چجوری favicon رو به سایتم اضافه کنم؟به طور پیش فرض مرورگر سعی میکنه عکس favicon.ico رو از ریشه سایت دانلود کنه. یعنی اگه سایت شما آدرسش abooraja.ir باشه،  مرورگر انتظار داره توی آدرس abooraja.ir/favicon.ico یه آیکن پیدا کنه.مگر اینکه آدرسش رو سفارشی کرده باشید و بگین از فلان جا بخون.اگر بخوام آدرس favicon رو سفارشی کنم چکار کنم؟اگر بخوایم به مروگر آدرس متفاوت از رفتار پیش فرض خودش بدیم، باید توی head به فرمت زیر آدرس جدید رو معرفی کنیم. &lt;head&gt;
       &lt;link rel=&#039;shortcut icon&#039; href=&#039;/images/favicon.ico&#039; type=&#039;image/x-icon&#039;&gt;
&lt;/head&gt;در کد بالا ما به مرورگر اعلام میکنیم که از پوشه images این فایل رو دانلود کن.البته درنظر داشته باشید که عکس favicon میتونه ico یا png باشه. پس باید حواسمون به اسم فایلمون باشه و پسوندش رو درست وارد کنیم.نحوه افزودن faviconیه وقتایی نشون نمیده؟ مشکل داره یا چی؟بعضی مرورگرها روی لوکال که در حال توسعه هستید، ممکنه نشون ندن. حواستون به این نکته باشه.یا ممکنه عکس کش شده از زمانی که عوض کردین یا جدید قرارش دادین. برای رفع این مشکل بهتره کش مرورگر رو عوض کنید یا یه آدرس جدید بدین. همچنین میتونین یه کوئری استرینگ الکی به انتهای آدرس عکس اضافه کنید تا مرورگر مجدد دانلودش کنه و شامل کش نشه.&lt;link rel=&#039;shortcut icon&#039; href=&#039;/favicon.png?v=1&#039; type=&#039;image/x-icon&#039;&gt;اون ?v1 آخر آدرس باعث میشه آدرس جدید بشه و مرورگر دوباره دانلودش کنه.آیا favicon از نظر سئو مهمه؟البته که مهمه. بعضی چیزها پایه ای هستند و نبودنش باعث مشکل میشه، اما بودنشون حداقلی هست. بنظر من این موضوع جزو این موارده. غیر از اینکه برای ظاهر سایت و راحتی کاربر و برندینگ حتما باید بذاریم.</description>
                <category>ابوراجا</category>
                <author>ابوراجا</author>
                <pubDate>Sat, 14 Jan 2023 15:38:51 +0330</pubDate>
            </item>
                    <item>
                <title>نوشتن یه hello world در console با c# داخل vscode و macbook air</title>
                <link>https://virgool.io/@abooraja/%D9%86%D9%88%D8%B4%D8%AA%D9%86-%DB%8C%D9%87-hello-world-%D8%AF%D8%B1-console-%D8%A8%D8%A7-c-%D8%AF%D8%A7%D8%AE%D9%84-vscode-%D9%88-macbook-air-q1zqxsqptnqi</link>
                <description>خب یه تمرین خیلی سخت داریم :)میخوایم یه سلام دنیا توی سی شارپ بنویسیم. اولین گام برنامه نویسی.مثال خیلی ساده ای هست. اما شروع کردن هرچند ساده بهتر از شروع نکردن هست.ویدئوی زیر که توی یوتیوب و آپارات آپلود شده رو ببیند و لذت ببرید :)درس های بعدی هم is coming... https://www.aparat.com/v/rJ7zi </description>
                <category>ابوراجا</category>
                <author>ابوراجا</author>
                <pubDate>Tue, 08 Mar 2022 14:42:34 +0330</pubDate>
            </item>
                    <item>
                <title>چرا نرم افزار را مستند می‌کنیم؟ شیوه بهینه و مدرن مستندسازی فنی چیست؟</title>
                <link>https://virgool.io/@abooraja/%DA%86%D8%B1%D8%A7-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1-%D8%B1%D8%A7-%D9%85%D8%B3%D8%AA%D9%86%D8%AF-%D9%85%DB%8C-%DA%A9%D9%86%DB%8C%D9%85-%D8%B4%DB%8C%D9%88%D9%87-%D8%A8%D9%87%DB%8C%D9%86%D9%87-%D9%88-%D9%85%D8%AF%D8%B1%D9%86-%D9%85%D8%B3%D8%AA%D9%86%D8%AF%D8%B3%D8%A7%D8%B2%DB%8C-%D9%81%D9%86%DB%8C-%DA%86%DB%8C%D8%B3%D8%AA-wcuhohytberl</link>
                <description>من فرض میگیرم که انسان تنبل است و فراموش کار. بنابراین دغدغه من این است که چگونه با درنظر گرفتن این شرایط، محصولات نرم افزاری را مستند کنیم.به تجربه خودم و دیگران فهمیده ام که مستندات متنی طولانی به هیچ کار نخواهد آمد. بروز هم نخواهد شد. خب حالا با این وضعیت چکار کنیم؟من در این حالت ترجیح میدهم که به اصل سوال رجوع کنم: ” اساسا چرا به مستند فنی نیاز داریم؟ “برای من سه چیز مهم است:۱- مدیریت دانش اعضای داخل تیم و انتقال دانش به همه اعضا۲- آموزش سیستم به نیروی جدید الورود شرکت۳- امکان نگهداری بهینه سیستم و افزودن امکانات به آناگر شما مستندات را برای کار دیگری می خواهید، مثلا ارائه به مدیرعامل یا سایر واحدهای اداری سازمان موضوع فرق میکند و نامش مستندات فنی نیست و باید به شیوه مطلوب و قابل فهم مخاطب تولید شود.اما اگر شما هم موارد بالا برایتان اهمیت دارد، پس باید شیوه صحیح مدیریت دانش و تهیه مستندات فنی را انجام دهید.برای رسیدن به این هدف باید مواردی را در حین توسعه سیستم در نظر بگیریم.مختصر و مفید: راه حل مبنایی و قطعی نوشتن ” کد تمیز ” و ” استاندارد ” است.هزاران ساعت آموزش، کتاب و مقاله در اینترنت برای کد‌نویسی تمیز وجود دارد. باید این استانداردها را رعایت کنیم. اصول کدنویسی تمیز، solid و سایر اصول را جدی بگیریم. مثلاً به جای اعداد جادویی از enum استفاده کنیم.cتیم فنی باید تمام تلاش خود را انجام دهد که خروجی کار استاندارد و خوانا باشد. در این صورت مهمترین قسمت مستندسازی انجام شده است. در‌نتیجه اعضای تیم کد همدیگر را به راحتی می‌خوانند و عضو جدید هم راحت تر با کد ارتباط برقرار میکند.در ادامه کدنویسی تمیز باید به تست نوشتن هم اهمیت داد. متاسفانه هنوز هم تست نوشتن برای خیلی از مدیران و حتی برنامه نویسان یک کالای لوکس محسوب میشود. خیلی از تیم ها تست نمینویسند یا به اهمیت آن واقف نیستند و خیلی زود تست ها را از دور خارج میکنند. در حالی که اگر هم چند روزی بخاطر شرایط زمانی پروژه، تست نوشتن را متوقف کردید، به عنوان یک بدهی فنی به آن نگاه کنید و خیلی سریع تست ها را بنویسید.از تست های برنامه به عنوان یک مستند خوب هم می شود استفاده کرد. تست هایی که خوب نامگذاری شده اند و هدف یک کسب و کار و فرایند را شرح میدهند، منبع بسیار خوبی برای یادآوری کدهای قدیمی هستند. همچنین اعضای جدید هم راحت تر می توانند منطق فرایندها را درک کنند.مساله مهم دیگر کدنوشتن دونفره pair programming یا چندنفره mob programing است. این مدل کدنوشتن کمک میکند که سلیقه های تیم مشترک شود و سطح دانش افراد هم تراز شود. در نهایت کدها یکدست شده و برای اعضای تیم خواناتر خواهد شد، اختلاف سلیقه کمرنگ تر شده و کیفیت کدها افزایش خواهد یافت.pair programmingامروزه framework و چهارچوب های بسیاری برای انواع زبان های برنامه نویسی وجود دارد. انتخاب یک فریم ورک خوب میتواند کمک زیادی به کیفیت کد و کم شدن نیاز مستندسازی داشته باشد. مثلا در زبان js انتخاب چهارچوبی مثل nestjs برای نوشتن api باعث می شود که کد نهایی ساختار منظم و قابل قبولی داشته و یکدست باشد. مستندات خوب nestjs هم کمک میکند که افراد جدید نیازی به مستندات داخل شرکت نداشته باشند و از مستندات باکیفیت فریم ورک بهره مند شوند.مساله مهم دیگر ابزارهای کمکی جانبی هستند. ابزارها غیر از راحت تر کردن کارها به استانداردسازی و افزایش کیفی کد هم کمک میکنند. مثلا ابزاری که نحوه نامگذاری متغیرها را چک میکند و اگر استاندارد camelCase رعایت نشود خطا می دهد. یا در حالت های پیشرفته تر احتمال خطا را تشخیص و پیشنهاد می دهد. linter ها بهترین نمونه دم دستی از این ابزارهای کمکی هستند.اکثر برنامه های مدرن امروزی از یک api و یک web client  یا mobile client تشکیل شده است. در این شرایط ارتباط بین دوتیم نیاز به مستندات و هماهنگی زیادی دارد. استاندارد swagger یا openApi باعث می شود که مستندات api به طور خودکار تولید شود. تیم client از آخرین تغییرات آگاه شود و خطای انسانی در مستندسازی ایجاد نشود.اما میتوان با استاندارد swagger کارهای دیگری هم کرد. چون swagger یک فرمت توصیفی است و مدل api را به صورت ماشینی در قالب json توصیف میکند، ابزارهایی وجود دارند که خروجی swagger را تبدیل به کد مثلا ts می کنند.swagger uiاین کار باعث میشود که حجم زیادی از کد به صورت خودکار تولید شود. در نتیجه زمان پروژه کوتاه تر می شود. خطای ارتباط با api کم می شود. نیازی به مستندسازی برای هماهنگی هم وجود ندارد. در صورت تغییر هم می توان با یک دستور و ساخت دوباره مدل از تغییرات آگاه شد.اگر موارد بالا را رعایت کرده باشیم، در نهایت چیزی که نیاز به مستندات دارد کلیات ساختاری است. برای این موارد در قالب ویدئوهای کوتاه یا تصاویر که حین کار تهیه می شود می توان مستندات را کامل کرد. مثلا دلایل انتخاب معماری، توضیح ساختار پروژه، دلیل استفاده از واسط پیام message broker و موضوعاتی از این قبیل.حالا یک تست عملیاتی کنید. نفر جدید که وارد سازمان می شود را زیرنظر داشته باشید. اگر براحتی کد را فهمید و اولین کارش رو در زمان کوتاه انجام داد اوضاع خوب است. اما اگر زمان غیرمعقولی طول کشید دوحالت وجود دارد: یا مستندات خوب نیست، یا فرد مناسبی را استخدام نکرده اید.چرا نرم افزار را مستند می‌کنیم؟ شیوه بهینه و مدرن مستندسازی فنی چیست؟</description>
                <category>ابوراجا</category>
                <author>ابوراجا</author>
                <pubDate>Tue, 23 Feb 2021 16:35:51 +0330</pubDate>
            </item>
                    <item>
                <title>کتابخانه ای کامل برای مسائل زبان فارسی در جاوااسکریپت</title>
                <link>https://virgool.io/CodeLovers/%DA%A9%D8%AA%D8%A7%D8%A8%D8%AE%D8%A7%D9%86%D9%87-%D8%A7%DB%8C-%DA%A9%D8%A7%D9%85%D9%84-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%85%D8%B3%D8%A7%D8%A6%D9%84-%D8%B2%D8%A8%D8%A7%D9%86-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7%D8%A7%D8%B3%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA-tyvx7urm5cln</link>
                <description>بعضی نیازهای روزمره برنامه نویسی در همه زبان ها همیشه مورد نیاز هستند. مهم ترین اینها توابع و کتابخانه های کار با اعداد و زبان و تبدیل های مختلف اونهاست.حالا آقای علی ترکی عزیز به همراه چندنفر دیگر یک کتابخانه با کیفیت برای js نوشتند که تقریبا همه این نیازهای روزمره را پوشش میدهد.نمونه مواردی که این کتابخانه پوشش میدهد:•  تبدیل اعداد به حروف و برعکس (مثلا:‌تبدیل ۳۰۰ به سی صد و برعکس).•  حذف و اضافه کردن کاما به اعداد.•  تبدیل اعداد فارسی به انگلیسی و عربی و عربی به انگلیسی و فارسی.•  تایید و اعتبارسنجی کد ملی.•  دریافت نام استان و شهرستان با کد ملی.•  تایید و اعتبارسنجی شماره عابر بانک.•  دریافت نام بانک توسط شماره عابر بانک.•  تایید و اعتبارسنجی متن فارسی ( به عنوان مثال:‌ درصورتی که متن وارد شده فارسی باشد true برمیگرداند )•  تمیز کردن متن فارسی از حروف عربی و unicode ها.تمامی مثال ها و اطلاعات تکمیلی رو میتونید توی صفحه گیت هاب پروژه مشاهده کنید.https://github.com/persian-tools/persian-toolsپست مطلب در کانال تلگرامhttps://t.me/abooraja_ir/125</description>
                <category>ابوراجا</category>
                <author>ابوراجا</author>
                <pubDate>Sun, 03 Jan 2021 12:43:18 +0330</pubDate>
            </item>
                    <item>
                <title>غیرفعال کردن مسخره بازی نسخه node در yarn</title>
                <link>https://virgool.io/@abooraja/%D8%BA%DB%8C%D8%B1%D9%81%D8%B9%D8%A7%D9%84-%DA%A9%D8%B1%D8%AF%D9%86-%D9%85%D8%B3%D8%AE%D8%B1%D9%87-%D8%A8%D8%A7%D8%B2%DB%8C-%D9%86%D8%B3%D8%AE%D9%87-node-%D8%AF%D8%B1-yarn-tkqkmewv0iez</link>
                <description>احتمالا  شما هم این مشکل رو داشتید که بعضی package ها خیلی خودشون رو تحویل میگیرند و فقط در نسخه های مشخصی از node engine اجرا می شوند. مثلا اگر بخواهیم اونها رو با yarn install کنیم، پیغام زیر نشان داده می شود:error packagename@1.2.3: The engine &amp;quotnode&amp;quot is incompatible with this module. Expected version &amp;quot&gt;=10.16.0 &lt;=14.x.اگر مطمئن هستید که پکیج مدنظر دارد لوس بازی درمی آورد و با نسخه فعلی node شما مشکلی نخواهد داشت، می توانید به روش های مختلف این قابلیت را غیرفعال کنید.مثلا می توانید آن را به طور کل غیرفعال کنیم:yarn config set ignore-engines trueیا فقط برای آن دستور خاص از کار بیاندازیم:yarn --ignore-enginesیا به طور خاصyarn install --ignore-engines** البته منم امروز فهمیدم :) و این دستورات کارم رو راه انداخت. ولی اگر شما دوست باسواد چیز دیگری بلدید، نظر شما باعث خشنودی ماست</description>
                <category>ابوراجا</category>
                <author>ابوراجا</author>
                <pubDate>Sat, 24 Oct 2020 16:40:43 +0330</pubDate>
            </item>
                    <item>
                <title>کار با json در dot net core با System.Text.Json</title>
                <link>https://virgool.io/@abooraja/%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-json-%D8%AF%D8%B1-dot-net-core-%D8%A8%D8%A7-systemtextjson-zwpzxwn0y1a0</link>
                <description>از نگارش dot net core 3 به بعد مایکروسافت بسته ای تحت عنوان System.Text.Json ارائه داد که امکان کار با json را فراهم می کرد. در توضیح این بسته گفته می شود که در مقایسه با کتابخانه معروف newtonsoft.json بسیار سریع تر است و برای عملیات تبدیل میزان رم کمتری هم مصرف می کند.این بسته به صورت توکار در بسته dot net core 3.0 و بالاتر وجود دارد. اما اگر از نگارش های پایین تر استفاده می کنید باید بسته System.Text.Json را از nuget نصب کنید.این کتابخانه از فریم ورک های زیر پشتیبانی میکند:.NET Standard 2.0 and later versions
.NET Framework 4.7.2 and later versions
.NET Core 2.0, 2.1, and 2.2طرز کار کتابخانه:استفاده از کتابخانه راحت است. برای Serialize کردن از کد زیر استفاده می کنیمstring jsonstring = JsonSerializer.Serialize(sampleClassModel);البته namespace های مربوط فراموش نشودusing System.Text.Json; 
using System.Text.Json.Serialization;برای Deserialize کردن هم از متد زیر استفاده میکنیم:sampleClass = JsonSerializer.Deserialize&lt;sampleClassModel&gt;(jsonString);سایر امکاناتمعمول ترین کاربردها و شیوه استفاده به همین صورت بالا می باشد. اما گاهی اوقات نیازها پیچیده تر می شود. مثلا نیاز دارید که enum را به صورت متن دریافت کنید، در حالی که به صورت پیش فرض عدد مربوطه را برمیگرداند. یا میخواهید خروجی json دندانه دار باشد که خوانایی بیشتر است. خوشبختانه اکثر این امکانات از قبل پیاده سازی شده و ما فقط نیاز داریم آن را تنظیم کنیم.- خروجی json قالب بندی شده باشد:var options = new JsonSerializerOptions { WriteIndented = true, };
jsonString = JsonSerializer.Serialize(sampleClassModel, options);- خروجی CamelCase باشد:var serializeOptions = new JsonSerializerOptions {     PropertyNamingPolicy = JsonNamingPolicy.CamelCase,     WriteIndented = true};
jsonString = JsonSerializer.Serialize(sampleClassModel, serializeOptions);- خروجی enum ها string باشد.options = new JsonSerializerOptions();
options.Converters.Add(new JsonStringEnumConverter(JsonNamingPolicy.CamelCase));
options.WriteIndented = true;
jsonString = JsonSerializer.Serialize(sampleClassModel, options);این کتابخانه امکانات زیاد دیگری دارد که می توانید بسته به نیاز از آنها استفاده کنید.</description>
                <category>ابوراجا</category>
                <author>ابوراجا</author>
                <pubDate>Thu, 25 Jun 2020 18:39:49 +0430</pubDate>
            </item>
                    <item>
                <title>نصب وردپرس wordpress با داکر docker</title>
                <link>https://virgool.io/@abooraja/how-to-install-wordpress-with-docker-ujzwysqgxd6g</link>
                <description>باحال بودن docker به این هست که هر چی رو بخوای با سه سوت میتونی نصب کنی. وردپرس هم که معروف ترین نرم افزار وب هست، براش از قبل image آماده موجوده و فقط کافیه دستور مرتبط باهاش رو فراخوانی کنید.آدرس ایمیج داکر رسمی وردپرس اینجاستhttps://hub.docker.com/_/wordpress/https://hub.docker.com/_/wordpress/طبق مستندات انواع نسخه های php و نسخه های پایه لینوکس را پشتیبانی میکند و برای آنها ایمیج های مجزایی دارد.ساده ترین مدل اجرای یک نسخه از وردپرس به صورت زیر می باشد:$ docker run --name rajabpour-net -d wordpressالبته پارامتر name در اینجا فقط کار نامگذاری container اجرا شده را انجام می دهد و به این معنا نیست که بعد از زدن این دستور اگر آدرس https://rajabpour.net را در مرورگر بزنید سایت مربوطه باز خواهد شد.ما فرض میگیریم که شما اطلاعات پایه ای از وردپرس و داکر را دارید. بنابراین بحثمون رو به نکات اصلی میبریم.این ایمیج وردپرس کلی پارامتر ورودی از شما میگیره که مهم ترین و اصلی ترین اونها پارامترهای اتصال به پایگاه داده می باشد.-e WORDPRESS_DB_HOST=...
-e WORDPRESS_DB_USER=...
-e WORDPRESS_DB_PASSWORD=...
-e WORDPRESS_DB_NAME=...
-e WORDPRESS_TABLE_PREFIX=...پارامترهای دیگه ای مثل salt و تنظیمات multi site رو هم میگیره که میتونید در مستندات اون ببینید.حتما یادتون باشه که با استفاده از volume اطلاعاتتون رو برای آینده حفظ کنید. چون در غیر اینصورت با پاک شدن کانتینر، اطلاعات سایت شما مثل تصاویر و فایل های سایت هم پاک می شود...به عنوان نکته تکمیلی: معمولا از docker-compose برای راحت شدن کار استفاده میشه. در زیر می تونید فایل docker-compose کامل راه اندازی یک سایت وردپرس به همراه راه اندازی پایگاه داده رو ببینیدversion: &#039;3.1&#039;

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: &#039;1&#039;
    volumes:
      - db:/var/lib/mysql

volumes:
  wordpress:
  db: version:&#039;3.1&#039;services:wordpress:image:wordpressrestart:alwaysports:-8080:80environment:WORDPRESS_DB_HOST:dbWORDPRESS_DB_USER:exampleuserWORDPRESS_DB_PASSWORD:examplepassWORDPRESS_DB_NAME:exampledbvolumes:-wordpress:/var/www/htmldb:image:mysql:5.7restart:alwaysenvironment:MYSQL_DATABASE:exampledbMYSQL_USER:exampleuserMYSQL_PASSWORD:examplepassMYSQL_RANDOM_ROOT_PASSWORD:&#039;1&#039;volumes:-db:/var/lib/mysqlvolumes:wordpress:db: شاد و موفق باشید</description>
                <category>ابوراجا</category>
                <author>ابوراجا</author>
                <pubDate>Tue, 26 May 2020 18:41:12 +0430</pubDate>
            </item>
                    <item>
                <title>دستورات پرکاربرد برای docker در لینوکس</title>
                <link>https://virgool.io/@abooraja/%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA-%D9%BE%D8%B1%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AF%D8%A7%DA%A9%D8%B1-%D9%88-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3-yzmjxvjw6agf</link>
                <description>یک سری دستور هستند که هنگام مدیریت و سر و کله زدن با داکر زیاد به کار می آیند. من مواردی که نیاز خودم بوده و برام پیش اومده رو به تدریج در اینجا منتشر میکنم. شما هم مواردی رو اگر مفید میدونید در قسمت نظرات بنویسید. با کمی توضیحات :)راهنمای دستورات پرکاربرد داکر در لینوکس- میزان ram و cpu مصرفی هر کانتینرdocker stats- حذف چیزهای بلااستفاده از داکر. مثلا ایمیج های قدیمی یا ولوم های بدون استفادهdocker system prune- برای نمایش میزان هارد اشغال شده توسط داکرdocker system dfخروجی دستور docker system df</description>
                <category>ابوراجا</category>
                <author>ابوراجا</author>
                <pubDate>Mon, 06 Apr 2020 15:28:58 +0430</pubDate>
            </item>
                    <item>
                <title>تنظیم سرور لینوکس centos7 داخل ایران برای رد شدن از تحریم داکر</title>
                <link>https://virgool.io/@abooraja/config-docker-shecan-dns-centos7-osayepqucwlt</link>
                <description>همانطور که می دانید داکر ایران را تحریم کرده است. اگر سرور شما خارج از کشور باشد که مشکلی ندارید، اما اگر سرور داخل کشور باشد باید برای رد شدن از تحریم داکر چاره ای بیندیشید!یکی از بهترین روش ها بنظر من استفاده از سرویس رایگان شکن هست. shecan.irبه طور کل برای استفاده از سرویس شکن باید dns های سرور را تنظیم کنیم. گام اول: فایل زیر را باز می کنیم/etc/NetworkManager/NetworkManager.confسپس قسمت main را به صورت زیر ویرایش می کنیم[main]
dns=none
#plugins=ifcfg-rhگام دوم: فایل زیر را باز میکنیم/etc/resolve.confنیم سرورها را به نیم سرورهای شکن تغییر می دهیمnameserver 178.22.122.100
nameserver 185.51.200.2توجه داشته باشید که این آدرس ها ممکن است در طول زمان توسط شکن تغییر پیدا کند. در زمان نوشتن این مقاله آدرس ها به این صورت بوده است. حالا می توانید به راحتی داکر را نصب و استفاده کنید.</description>
                <category>ابوراجا</category>
                <author>ابوراجا</author>
                <pubDate>Mon, 06 Apr 2020 13:23:56 +0430</pubDate>
            </item>
            </channel>
</rss>