{"id":6759,"date":"2026-07-30T11:00:43","date_gmt":"2026-07-30T07:30:43","guid":{"rendered":"https:\/\/parmin.cloud\/blog\/?p=6759"},"modified":"2026-07-30T11:00:43","modified_gmt":"2026-07-30T07:30:43","slug":"%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d9%86%d8%b5%d8%a8-%d9%88-%d8%b1%d8%a7%d9%87%d8%a7%d9%86%d8%af%d8%a7%d8%b2%db%8c-%d9%84%d8%a7%d8%b1%d8%a7%d9%88%d9%84-%d8%a8%d8%a7-docker-compose-%d8%af%d8%b1","status":"publish","type":"post","link":"https:\/\/parmin.cloud\/blog\/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d9%86%d8%b5%d8%a8-%d9%88-%d8%b1%d8%a7%d9%87%d8%a7%d9%86%d8%af%d8%a7%d8%b2%db%8c-%d9%84%d8%a7%d8%b1%d8%a7%d9%88%d9%84-%d8%a8%d8%a7-docker-compose-%d8%af%d8%b1\/","title":{"rendered":"\u0622\u0645\u0648\u0632\u0634 \u0646\u0635\u0628 \u0648 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0644\u0627\u0631\u0627\u0648\u0644 \u0628\u0627 Docker Compose \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 24.04"},"content":{"rendered":"<div class=\"flex flex-col justify-between px-5 mb-3 w-full max-w-[808px] 2xl:max-w-[894px] min-w-[334px] mx-auto rounded-lg group\">\n<div id=\"message-e27bb33e-c0a3-4d29-83c1-fe4008844044\" class=\" flex w-full message-e27bb33e-c0a3-4d29-83c1-fe4008844044 gap-4 relative svelte-1qscqw6\" dir=\"\">\n<div class=\"flex-auto pl-1 w-0\">\n<div>\n<div class=\"chat-assistant w-full min-w-full markdown-prose svelte-1qscqw6\">\n<div>\n<div id=\"response-content-container\" class=\"flex relative flex-col w-full\">\n<div class=\"markdown-prose\">\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u0645\u0642\u062f\u0645\u0647<\/strong> \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u06a9\u0631\u062f\u0646 (Containerize) \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0628\u0647 \u0641\u0631\u0622\u06cc\u0646\u062f \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0648 \u0627\u062c\u0632\u0627\u06cc \u0622\u0646 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0633\u0628\u06a9\u06cc \u0628\u0647 \u0646\u0627\u0645 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u06af\u0641\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u06cc\u0646 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627 \u0627\u06cc\u0632\u0648\u0644\u0647 \u0648 \u0642\u0627\u0628\u0644 \u062d\u0630\u0641\/\u0628\u0627\u0632\u0633\u0627\u0632\u06cc \u0647\u0633\u062a\u0646\u062f \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0627\u0632 \u0622\u0646\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u060c \u062a\u0633\u062a \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 (Deploy) \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0627\u0632 Docker Compose \u0628\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0644\u0627\u0631\u0627\u0648\u0644 (Laravel) \u062c\u0647\u062a \u062a\u0648\u0633\u0639\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645 \u06a9\u0627\u0631\u060c \u0634\u0645\u0627 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0645\u0648\u06cc \u0644\u0627\u0631\u0627\u0648\u0644 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a \u06a9\u0647 \u0631\u0648\u06cc \u0633\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0633\u0631\u0648\u06cc\u0633 \u062c\u062f\u0627\u06af\u0627\u0646\u0647 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u062f:<\/p>\n<div><\/div>\n<ul dir=\"auto\">\n<li class=\"text-start\">\u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 <code class=\"cursor-pointer codespan\">app<\/code> \u06a9\u0647 PHP 8.2-FPM \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li class=\"text-start\">\u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 <code class=\"cursor-pointer codespan\">db<\/code> \u06a9\u0647 MySQL 8.0 \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<li class=\"text-start\">\u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 <code class=\"cursor-pointer codespan\">nginx<\/code> \u06a9\u0647 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633 <code class=\"cursor-pointer codespan\">app<\/code> \u0628\u0631\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u06a9\u062f\u0647\u0627\u06cc PHP \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0633\u067e\u0633 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0644\u0627\u0631\u0627\u0648\u0644 \u0631\u0627 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0646\u0647\u0627\u06cc\u06cc \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/li>\n<\/ul>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0641\u0631\u0622\u06cc\u0646\u062f \u062a\u0648\u0633\u0639\u0647 \u0631\u0648\u0627\u0646 \u0648 \u062a\u0633\u0647\u06cc\u0644 \u062f\u06cc\u0628\u0627\u06af \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u060c \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Volume \u0647\u0627\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631\u0627\u062a <code class=\"cursor-pointer codespan\">docker compose exec<\/code> \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc Composer \u0648 Artisan \u062f\u0631 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 <code class=\"cursor-pointer codespan\">app<\/code> \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/strong><\/p>\n<ul dir=\"auto\">\n<li class=\"text-start\">\u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 24.04 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u063a\u06cc\u0631 \u0631\u0648\u062a (non-root) \u0628\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc sudo. \u0627\u06af\u0631 \u0627\u0632 \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0631\u06cc\u0645\u0648\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u062f\u0627\u0634\u062a\u0646 \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u0641\u0639\u0627\u0644 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f\u060c \u0644\u0637\u0641\u0627\u064b \u0628\u0647 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0633\u0631\u0648\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u062f\u0631 \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f.<\/li>\n<li class=\"text-start\">\u062f\u0627\u06a9\u0631 (Docker) \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0646\u0635\u0628 \u0628\u0627\u0634\u062f.<\/li>\n<li class=\"text-start\">Docker Compose \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0646\u0635\u0628 \u0628\u0627\u0634\u062f.<\/li>\n<\/ul>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f1 \u2014 \u062f\u0631\u06cc\u0627\u0641\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0645\u0648<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639\u060c \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0645\u0648\u06cc \u0644\u0627\u0631\u0627\u0648\u0644 \u0631\u0627 \u0627\u0632 \u0645\u062e\u0632\u0646 \u06af\u06cc\u062a\u200c\u0647\u0627\u0628 \u0622\u0646 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0645\u0627 \u0628\u0647 \u0634\u0627\u062e\u0647 <code class=\"cursor-pointer codespan\">tutorial-01<\/code> \u0639\u0644\u0627\u0642\u0647\u200c\u0645\u0646\u062f\u06cc\u0645 \u06a9\u0647 \u062d\u0627\u0648\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u0627\u06cc\u0647 \u0644\u0627\u0631\u0627\u0648\u0644 \u0627\u0633\u062a.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u062f\u0647\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0633\u0627\u0632\u06af\u0627\u0631 \u0628\u0627 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634\u060c \u0646\u0633\u062e\u0647 <code class=\"cursor-pointer codespan\">tutorial-1.0.1<\/code> \u0631\u0627 \u0628\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062e\u0627\u0646\u0647 \u062e\u0648\u062f \u062f\u0627\u0646\u0644\u0648\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c526\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9h \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">cd ~<\/div>\n<div class=\"cm-line\">curl -L https:\/\/github.com\/parmincloud\/travellist-laravel-demo\/archive\/tutorial-1.0.1.zip -o travellist.zip<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-19\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u0641\u0627\u06cc\u0644 \u0632\u06cc\u067e \u0628\u0647 \u062f\u0633\u062a\u0648\u0631 <code class=\"cursor-pointer codespan\">unzip<\/code> \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645. \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u0635\u0628 \u0646\u0628\u0648\u062f\u0646\u060c \u0622\u0646 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c528\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9i \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo apt update<\/div>\n<div class=\"cm-line\">sudo apt install unzip<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-23\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06a9\u0646\u0648\u0646 \u0645\u062d\u062a\u0648\u06cc\u0627\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0627 \u0627\u0633\u062a\u062e\u0631\u0627\u062c \u06a9\u0631\u062f\u0647 \u0648 \u0646\u0627\u0645 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0622\u0633\u0627\u0646\u200c\u062a\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c530\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9j \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">unzip travellist.zip<\/div>\n<div class=\"cm-line\">mv travellist-laravel-demo-tutorial-1.0.1 travellist-demo<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-27\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc <code class=\"cursor-pointer codespan\">travellist-demo<\/code> \u0628\u0631\u0648\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c532\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9k \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">cd travellist-demo<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-31\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f2 \u2014 \u062a\u0646\u0638\u06cc\u0645 \u0641\u0627\u06cc\u0644 <code class=\"cursor-pointer codespan\">.env<\/code> \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0644\u0627\u0631\u0627\u0648\u0644 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0628\u0647 \u0646\u0627\u0645 <code class=\"cursor-pointer codespan\">config<\/code> \u062f\u0631 \u0645\u0633\u06cc\u0631 \u0631\u06cc\u0634\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0642\u0631\u0627\u0631 \u062f\u0627\u0631\u0646\u062f. \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646\u060c \u0627\u0632 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 <code class=\"cursor-pointer codespan\">.env<\/code> \u0628\u0631\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u200c\u0647\u0627\u06cc \u0648\u0627\u0628\u0633\u062a\u0647 \u0628\u0647 \u0645\u062d\u06cc\u0637 (\u0645\u0627\u0646\u0646\u062f \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0648 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0647\u0634\u062f\u0627\u0631: \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u062d\u06cc\u0637 (Environment) \u062d\u0627\u0648\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062d\u0633\u0627\u0633\u06cc \u062f\u0631\u0628\u0627\u0631\u0647 \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0627\u0632 \u062c\u0645\u0644\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0648 \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u0627\u0633\u062a. \u0628\u0647 \u0647\u0645\u06cc\u0646 \u062f\u0644\u06cc\u0644\u060c \u0647\u0631\u06af\u0632 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0639\u0645\u0648\u0645\u06cc \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0646\u06af\u0630\u0627\u0631\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0641\u0627\u06cc\u0644 <code class=\"cursor-pointer codespan\">.env<\/code> \u0628\u0631 \u0645\u0642\u0627\u062f\u06cc\u0631 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u062f\u0631 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u0639\u0645\u0648\u0644\u06cc \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc <code class=\"cursor-pointer codespan\">config<\/code> \u0627\u0648\u0644\u0648\u06cc\u062a \u062f\u0627\u0631\u0646\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 <code class=\"cursor-pointer codespan\">.env<\/code> \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u0644\u0627\u0631\u0627\u0648\u0644 \u0628\u0627 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 <code class=\"cursor-pointer codespan\">.env.example<\/code> \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0641\u0627\u06cc\u0644 \u062e\u0648\u062f \u0627\u0632 \u0622\u0646 \u06a9\u067e\u06cc \u0628\u06af\u06cc\u0631\u06cc\u0645:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c534\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9l \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">cp .env.example .env<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-43\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0628\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u0645\u062a\u0646 \u062e\u0648\u062f \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c536\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9m \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">nano .env<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-47\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0641\u0627\u06cc\u0644 <code class=\"cursor-pointer codespan\">.env<\/code> \u0641\u0639\u0644\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a\u06cc \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0645\u062d\u0644\u06cc MySQL \u0628\u0627 \u0622\u062f\u0631\u0633 <code class=\"cursor-pointer codespan\">127.0.0.1<\/code> \u062f\u0627\u0631\u062f. \u0628\u0627\u06cc\u062f \u0645\u062a\u063a\u06cc\u0631 <code class=\"cursor-pointer codespan\">DB_HOST<\/code> \u0631\u0627 \u0628\u0647 \u06af\u0648\u0646\u0647\u200c\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u0645 \u06a9\u0647 \u0628\u0647 \u0633\u0631\u0648\u06cc\u0633 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u06a9\u0647 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u062f\u0627\u06a9\u0631 \u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u062f \u0634\u062f \u0627\u0634\u0627\u0631\u0647 \u06a9\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0646\u0627\u0645 \u0633\u0631\u0648\u06cc\u0633 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 \u0631\u0627 <code class=\"cursor-pointer codespan\">db<\/code> \u0645\u06cc\u200c\u06af\u0630\u0627\u0631\u06cc\u0645. \u0645\u0642\u062f\u0627\u0631 <code class=\"cursor-pointer codespan\">DB_HOST<\/code> \u0631\u0627 \u0628\u0647 <code class=\"cursor-pointer codespan\">db<\/code> \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>.env<\/strong><\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">env<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c538\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-env rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9n \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">APP_NAME=Travellist<\/div>\n<div class=\"cm-line\">APP_ENV=dev<\/div>\n<div class=\"cm-line\">APP_KEY=<\/div>\n<div class=\"cm-line\">APP_DEBUG=true<\/div>\n<div class=\"cm-line\">APP_URL=http:\/\/localhost:8000<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">LOG_CHANNEL=stack<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">DB_CONNECTION=mysql<\/div>\n<div class=\"cm-line\">DB_HOST=db<\/div>\n<div class=\"cm-line\">DB_PORT=3306<\/div>\n<div class=\"cm-line\">DB_DATABASE=travellist<\/div>\n<div class=\"cm-line\">DB_USERNAME=travellist_user<\/div>\n<div class=\"cm-line\">DB_PASSWORD=password<\/div>\n<div class=\"cm-line\">&#8230;<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-51\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062f\u0631 \u0635\u0648\u0631\u062a \u062a\u0645\u0627\u06cc\u0644 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0646\u0627\u0645 \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633\u060c \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0648 \u0631\u0645\u0632 \u0639\u0628\u0648\u0631 \u0631\u0627 \u0646\u06cc\u0632 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f. \u0627\u06cc\u0646 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f \u0628\u0631\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0641\u0627\u06cc\u0644 <code class=\"cursor-pointer codespan\">docker-compose.yml<\/code> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f. \u067e\u0633 \u0627\u0632 \u067e\u0627\u06cc\u0627\u0646 \u0648\u06cc\u0631\u0627\u06cc\u0634\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f3 \u2014 \u062a\u0646\u0638\u06cc\u0645 Dockerfile \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06af\u0631\u0686\u0647 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc MySQL \u0648 Nginx \u0645\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0627\u06cc\u0645\u06cc\u062c\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u0645\u0648\u062c\u0648\u062f \u062f\u0631 Docker Hub (\u06a9\u0647 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0645\u06cc\u0631\u0648\u0631 \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u0634\u0648\u0646\u062f) \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u0627\u0645\u0627 \u0647\u0645\u0686\u0646\u0627\u0646 \u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0627\u06cc\u0645\u06cc\u062c \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0628\u0633\u0627\u0632\u06cc\u0645.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06cc\u0645\u06cc\u062c \u0645\u0627 \u0628\u0631 \u067e\u0627\u06cc\u0647 \u0627\u06cc\u0645\u06cc\u062c \u0631\u0633\u0645\u06cc <code class=\"cursor-pointer codespan\">php:8.2-fpm<\/code> \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f. \u062f\u0631 \u06a9\u0646\u0627\u0631 \u0627\u06cc\u0646 \u0645\u062d\u06cc\u0637 PHP-FPM\u060c \u0686\u0646\u062f \u0645\u0627\u0698\u0648\u0644 \u0627\u0636\u0627\u0641\u06cc PHP \u0648 \u0627\u0628\u0632\u0627\u0631 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627 \u06cc\u0639\u0646\u06cc Composer \u0631\u0627 \u0646\u0635\u0628 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0647\u0645\u0686\u0646\u06cc\u0646 \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u0633\u06cc\u0633\u062a\u0645 \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u062f\u0633\u062a\u0648\u0631\u0627\u062a <code class=\"cursor-pointer codespan\">artisan<\/code> \u0648 <code class=\"cursor-pointer codespan\">composer<\/code> \u0631\u0627 \u062f\u0631 \u062d\u06cc\u0646 \u062a\u0648\u0633\u0639\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645. \u062a\u0646\u0638\u06cc\u0645 <code class=\"cursor-pointer codespan\">uid<\/code> \u0628\u0627\u0639\u062b \u0645\u06cc\u200c\u0634\u0648\u062f \u06a9\u0627\u0631\u0628\u0631 \u062f\u0627\u062e\u0644 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0647\u0645\u0627\u0646 \u0634\u0646\u0627\u0633\u0647 \u06a9\u0627\u0631\u0628\u0631\u06cc (uid) \u06a9\u0627\u0631\u0628\u0631 \u0634\u0645\u0627 \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0631\u0627 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f. \u0628\u0647 \u0627\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628\u060c \u0647\u0631 \u0641\u0627\u06cc\u0644\u06cc \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u0634\u0648\u062f \u0628\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc\u200c\u0647\u0627\u06cc \u0635\u062d\u06cc\u062d \u062f\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0646\u06cc\u0632 \u0628\u0627\u0632\u062a\u0627\u0628 \u067e\u06cc\u062f\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u06cc\u06a9 <code class=\"cursor-pointer codespan\">Dockerfile<\/code> \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c540\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9o \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">nano Dockerfile<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-64\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0645\u062d\u062a\u0648\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0622\u0646 \u06a9\u067e\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>Dockerfile<\/strong><\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">dockerfile<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c542\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-dockerfile rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9p \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\"><span class=\"\u037c5s\">FROM<\/span> hub.cr.parmincloud.ir\/php:8.2-fpm<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5l\"># Arguments defined in docker-compose.yml<\/span><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">ARG<\/span> user<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">ARG<\/span> uid<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5l\"># Install system dependencies<\/span><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">RUN<\/span> apt-get update &amp;&amp; apt-get install -y \\<\/div>\n<div class=\"cm-line\">git \\<\/div>\n<div class=\"cm-line\">curl \\<\/div>\n<div class=\"cm-line\">libpng-dev \\<\/div>\n<div class=\"cm-line\">libonig-dev \\<\/div>\n<div class=\"cm-line\">libxml2-dev \\<\/div>\n<div class=\"cm-line\">zip \\<\/div>\n<div class=\"cm-line\">unzip<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5l\"># Clear cache<\/span><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">RUN<\/span> apt-get clean &amp;&amp; rm -rf \/var\/lib\/apt\/lists\/*<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5l\"># Install PHP extensions<\/span><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">RUN<\/span> docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5l\"># Get latest Composer<\/span><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">COPY<\/span> &#8211;from=hub.cr.parmincloud.ir\/composer:latest \/usr\/bin\/composer \/usr\/bin\/composer<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5l\"># Create system user to run Composer and Artisan Commands<\/span><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">RUN<\/span> useradd -G www-data,root -u $uid -d \/home\/$user $user<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">RUN<\/span> mkdir -p \/home\/$user\/.composer &amp;&amp; \\<\/div>\n<div class=\"cm-line\">chown -R $user:$user \/home\/$user<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5l\"># Set working directory<\/span><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">WORKDIR<\/span> \/var\/www<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">USER<\/span> $user<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-69\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 Dockerfile \u0628\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0627\u06cc\u0645\u06cc\u062c \u067e\u0627\u06cc\u0647 \u0634\u0631\u0648\u0639 \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0648 \u0627\u06a9\u0633\u062a\u0646\u0634\u0646\u200c\u0647\u0627\u06cc PHP \u0631\u0627 \u0646\u0635\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0633\u067e\u0633 Composer \u0631\u0627 \u0627\u0632 \u0627\u06cc\u0645\u06cc\u062c \u0631\u0633\u0645\u06cc \u0622\u0646 \u06a9\u067e\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u0633\u06cc\u0633\u062a\u0645 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0631\u06af\u0648\u0645\u0627\u0646\u200c\u0647\u0627\u06cc \u067e\u0627\u0633 \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f4 \u2014 \u062a\u0646\u0638\u06cc\u0645 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx \u0648 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0647\u0646\u06af\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u0627 Docker Compose\u060c \u0627\u063a\u0644\u0628 \u0644\u0627\u0632\u0645 \u0627\u0633\u062a \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06cc\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0631\u0627 \u0628\u0627 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u06cc\u0645.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645 Nginx\u060c \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0646\u0627\u0645 <code class=\"cursor-pointer codespan\">travellist.conf<\/code> \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645. \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c544\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9q \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">mkdir -p docker-compose\/nginx<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-78\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c546\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9r \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">nano docker-compose\/nginx\/travellist.conf<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-82\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0622\u0646 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>docker-compose\/nginx\/travellist.conf<\/strong><\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">nginx<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c548\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-nginx rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9s \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\" data-language=\"nginx\">\n<div class=\"cm-line\"><span class=\"\u037c5s\">server<\/span> {<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">listen<\/span> 80;<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">index<\/span> <span class=\"\u037c5s\">index<\/span>.<span class=\"\u037c5n\">php index<\/span>.html;<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">error_log<\/span> \/var\/log\/nginx\/error.log;<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">access_log<\/span> \/var\/log\/nginx\/access.log;<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">root<\/span> \/var\/www\/public;<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">location<\/span> <span class=\"\u037c5n\">~<\/span> <span class=\"\u037c5n\">\\<\/span>.<span class=\"\u037c5n\">php$ <\/span>{<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">try_files<\/span> <span class=\"\u037c5n\">$uri <\/span>=404;<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">fastcgi_split_path_info<\/span> <span class=\"\u037c5n\">^(<\/span>.+<span class=\"\u037c5n\">\\<\/span>.<span class=\"\u037c5n\">php)(<\/span>\/.+<span class=\"\u037c5n\">)<\/span>$;<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">fastcgi_pass<\/span> app:9000;<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">fastcgi_index<\/span> <span class=\"\u037c5s\">index<\/span>.php;<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">include<\/span> fastcgi_params;<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">fastcgi_param<\/span> <span class=\"\u037c5n\">SCRIPT_FILENAME <\/span>$document_root$fastcgi_script_name;<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">fastcgi_param<\/span> <span class=\"\u037c5n\">PATH_INFO <\/span>$fastcgi_path_info;<\/div>\n<div class=\"cm-line\">}<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">location<\/span> \/ {<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">try_files<\/span> <span class=\"\u037c5n\">$uri <\/span>$uri\/ \/<span class=\"\u037c5s\">index<\/span>.<span class=\"\u037c5n\">php?<\/span>$query_string;<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">gzip_static<\/span> on;<\/div>\n<div class=\"cm-line\">}<\/div>\n<div class=\"cm-line\">}<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-87\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 Nginx \u0631\u0627 \u0628\u0631\u0627\u06cc \u06af\u0648\u0634 \u062f\u0627\u062f\u0646 \u0628\u0647 \u067e\u0648\u0631\u062a 80 \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code class=\"cursor-pointer codespan\">index.php<\/code> \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u062f\u06cc\u062a\u0627\u0628\u06cc\u0633 MySQL\u060c \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062f\u0627\u0645\u067e (Dump) \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0645\u06cc\u200c\u06af\u0630\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0648\u0627\u0631\u062f (Import) \u0645\u06cc\u200c\u0634\u0648\u062f. \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c550\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9t \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">mkdir docker-compose\/mysql<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-92\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u06cc\u06a9 \u0641\u0627\u06cc\u0644 <code class=\"cursor-pointer codespan\">.sql<\/code> \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c552\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9u \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">nano docker-compose\/mysql\/init_db.sql<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-96\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u06a9\u062f \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0622\u0646 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>docker-compose\/mysql\/db_init.sql<\/strong><\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">sql<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c553\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-sql rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9v \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">DROP TABLE IF EXISTS `places`;<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">CREATE TABLE `places` (<\/div>\n<div class=\"cm-line\">`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,<\/div>\n<div class=\"cm-line\">`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,<\/div>\n<div class=\"cm-line\">`visited` tinyint(1) NOT NULL DEFAULT &#8216;0&#8217;,<\/div>\n<div class=\"cm-line\">PRIMARY KEY (`id`)<\/div>\n<div class=\"cm-line\">) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">INSERT INTO `places` (name, visited) VALUES (&#8216;Berlin&#8217;,0),(&#8216;Budapest&#8217;,0),(&#8216;Cincinnati&#8217;,1),(&#8216;Denver&#8217;,0),(&#8216;Helsinki&#8217;,0),(&#8216;Lisbon&#8217;,0),(&#8216;Moscow&#8217;,1),(&#8216;Nairobi&#8217;,0),(&#8216;Oslo&#8217;,1),(&#8216;Rio&#8217;,0),(&#8216;Tokyo&#8217;,0);<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-101\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06cc\u0646 \u06a9\u062f \u06cc\u06a9 \u062c\u062f\u0648\u0644 \u0628\u0647 \u0646\u0627\u0645 <code class=\"cursor-pointer codespan\">places<\/code> \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0627 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0646\u0645\u0648\u0646\u0647 \u067e\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f5 \u2014 \u0627\u06cc\u062c\u0627\u062f \u0645\u062d\u06cc\u0637 \u0686\u0646\u062f\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u0628\u0627 Docker Compose<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">Docker Compose \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0686\u0646\u062f\u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0628\u062e\u0634 \u0641\u0627\u06cc\u0644 <code class=\"cursor-pointer codespan\">docker-compose.yml<\/code> \u0631\u0627 \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u0645. \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u062f\u0631 \u0631\u06cc\u0634\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u0647 \u0633\u0631\u0648\u06cc\u0633 <code class=\"cursor-pointer codespan\">app<\/code>\u060c <code class=\"cursor-pointer codespan\">db<\/code> \u0648 <code class=\"cursor-pointer codespan\">nginx<\/code> \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0632 \u0637\u0631\u06cc\u0642 Bind Mounts \u062f\u0631 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc <code class=\"cursor-pointer codespan\">app<\/code> \u0648 <code class=\"cursor-pointer codespan\">nginx<\/code> \u0647\u0645\u06af\u0627\u0645\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u0634\u0648\u0646\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0641\u0627\u06cc\u0644 <code class=\"cursor-pointer codespan\">docker-compose.yml<\/code> \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c556\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9w \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">nano docker-compose.yml<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-112\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0645\u062d\u062a\u0648\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0631 \u0622\u0646 \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f (\u062f\u0642\u062a \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u06cc\u0645\u06cc\u062c\u200c\u0647\u0627 \u0627\u0632 \u0645\u06cc\u0631\u0648\u0631 \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc\u200c\u0634\u0648\u0646\u062f):<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>docker-compose.yml<\/strong><\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">yaml<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c558\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-yaml rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9x \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\" data-language=\"yaml\">\n<div class=\"cm-line\"><span class=\"\u037c5r\">services<\/span>:<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">app<\/span>:<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">build<\/span>:<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">args<\/span>:<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">user<\/span>: sammy<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">uid<\/span>: 1000<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">context<\/span>: .\/<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">dockerfile<\/span>: Dockerfile<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">image<\/span>: travellist<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">container_name<\/span>: travellist-app<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">restart<\/span>: unless-stopped<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">working_dir<\/span>: \/var\/www\/<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">volumes<\/span>:<\/div>\n<div class=\"cm-line\">&#8211; .\/:\/var\/www<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">networks<\/span>:<\/div>\n<div class=\"cm-line\">&#8211; travellist<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">db<\/span>:<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">image<\/span>: hub.cr.parmincloud.ir\/mysql:8.0<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">container_name<\/span>: travellist-db<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">restart<\/span>: unless-stopped<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">environment<\/span>:<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">MYSQL_DATABASE<\/span>: ${DB_DATABASE}<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">MYSQL_ROOT_PASSWORD<\/span>: ${DB_PASSWORD}<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">MYSQL_PASSWORD<\/span>: ${DB_PASSWORD}<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">MYSQL_USER<\/span>: ${DB_USERNAME}<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">SERVICE_TAGS<\/span>: dev<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">SERVICE_NAME<\/span>: mysql<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">volumes<\/span>:<\/div>\n<div class=\"cm-line\">&#8211; .\/docker-compose\/mysql:\/docker-entrypoint-initdb.d<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">networks<\/span>:<\/div>\n<div class=\"cm-line\">&#8211; travellist<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">nginx<\/span>:<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">image<\/span>: hub.cr.parmincloud.ir\/nginx:alpine<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">container_name<\/span>: travellist-nginx<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">restart<\/span>: unless-stopped<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">ports<\/span>:<\/div>\n<div class=\"cm-line\">&#8211; 8000:80<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">volumes<\/span>:<\/div>\n<div class=\"cm-line\">&#8211; .\/:\/var\/www<\/div>\n<div class=\"cm-line\">&#8211; .\/docker-compose\/nginx:\/etc\/nginx\/conf.d\/<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">networks<\/span>:<\/div>\n<div class=\"cm-line\">&#8211; travellist<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">networks<\/span>:<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">travellist<\/span>:<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5r\">driver<\/span>: bridge<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-117\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f. (\u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u062c\u062f\u06cc\u062f Docker Compose \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u062a\u0639\u06cc\u06cc\u0646 <code class=\"cursor-pointer codespan\">version<\/code> \u062f\u0631 \u0627\u0628\u062a\u062f\u0627\u06cc \u0641\u0627\u06cc\u0644 \u0646\u062f\u0627\u0631\u0646\u062f).<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f6 \u2014 \u0627\u062c\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0628\u0627 Docker Compose<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06a9\u0646\u0648\u0646 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631\u0627\u062a Docker Compose \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0627\u06cc\u0645\u06cc\u062c \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0648 \u0627\u062c\u0631\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06cc\u0645\u06cc\u062c <code class=\"cursor-pointer codespan\">app<\/code> \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c560\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9y \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">docker compose build app<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-127\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0686\u0646\u062f \u062f\u0642\u06cc\u0642\u0647 \u0637\u0648\u0644 \u0628\u06a9\u0634\u062f. \u067e\u0633 \u0627\u0632 \u062a\u06a9\u0645\u06cc\u0644\u060c \u0645\u062d\u06cc\u0637 \u0631\u0627 \u062f\u0631 \u062d\u0627\u0644\u062a \u067e\u0633\u200c\u0632\u0645\u06cc\u0646\u0647 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c562\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c9z \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">docker compose up -d<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-130\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0648\u0636\u0639\u06cc\u062a \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0641\u0639\u0627\u0644:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c564\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037ca0 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">docker compose ps<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-134\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0627\u06cc\u062f \u0646\u0634\u0627\u0646 \u062f\u0647\u062f \u06a9\u0647 \u0633\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 <code class=\"cursor-pointer codespan\">travellist-app<\/code>\u060c <code class=\"cursor-pointer codespan\">travellist-db<\/code> \u0648 <code class=\"cursor-pointer codespan\">travellist-nginx<\/code> \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 (Up) \u0647\u0633\u062a\u0646\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06a9\u0646\u0648\u0646 \u0628\u0627\u06cc\u062f \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627\u06cc \u0644\u0627\u0631\u0627\u0648\u0644 \u0631\u0627 \u0628\u0627 Composer \u0646\u0635\u0628 \u06a9\u0646\u06cc\u0645:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c566\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037ca1 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">docker compose exec app composer install<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-140\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633 \u06a9\u0644\u06cc\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0644\u0627\u0631\u0627\u0648\u0644 \u0631\u0627 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c568\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037ca2 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">docker compose exec app php artisan key:generate<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-144\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062e\u0631\u0648\u062c\u06cc <code class=\"cursor-pointer codespan\">Application key set successfully.<\/code> \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0631\u0648\u0631\u06af\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0647 \u0648 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u067e\u0648\u0631\u062a 8000 \u0628\u0647 \u0633\u0631\u0648\u0631 \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><code class=\"cursor-pointer codespan\">http:\/\/server_domain_or_IP:8000<\/code><\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06af\u0631 \u0627\u06cc\u0646 \u062f\u0645\u0648 \u0631\u0627 \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0645\u062d\u0644\u06cc (Local) \u062e\u0648\u062f \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0627\u0632 \u0622\u062f\u0631\u0633 <code class=\"cursor-pointer codespan\">http:\/\/localhost:8000<\/code> \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0635\u0641\u062d\u0647 \u0627\u0635\u0644\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0645\u0648\u06cc Travellist \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u0645\u0634\u0627\u0647\u062f\u0647 \u0644\u0627\u06af\u200c\u0647\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633 Nginx \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c570\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037ca3 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">docker compose logs nginx<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-154\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06af\u0631 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u062d\u06cc\u0637 Docker Compose \u0631\u0627 \u0645\u062a\u0648\u0642\u0641 \u06a9\u0646\u06cc\u062f \u0627\u0645\u0627 \u0648\u0636\u0639\u06cc\u062a \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627 \u0631\u0627 \u062d\u0641\u0638 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c572\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037ca4 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">docker compose pause<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-157\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u0627\u0632 \u0633\u0631\u06af\u06cc\u0631\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627:<\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c574\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037ca5 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">docker compose unpause<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-159\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u062e\u0627\u0645\u0648\u0634 \u06a9\u0631\u062f\u0646 \u06a9\u0627\u0645\u0644 \u0645\u062d\u06cc\u0637 \u0648 \u062d\u0630\u0641 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u0647\u0627\u060c \u0634\u0628\u06a9\u0647\u200c\u0647\u0627 \u0648 Volume \u0647\u0627:<\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c575\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037ca6 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">docker compose down<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-e27bb33e-c0a3-4d29-83c1-fe4008844044-162\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u0646\u062a\u06cc\u062c\u0647\u200c\u06af\u06cc\u0631\u06cc<\/strong> \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0645\u0627 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u062f\u0627\u06a9\u0631 \u0628\u0627 \u0633\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker Compose \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 YAML \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u06cc\u0645. \u0627\u0632 \u0627\u06cc\u0646 \u0628\u0647 \u0628\u0639\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0631\u0648\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0644\u0627\u0631\u0627\u0648\u0644 \u062e\u0648\u062f \u06a9\u0627\u0631 \u06a9\u0646\u06cc\u062f \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0646\u0635\u0628 \u0648 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06cc\u06a9 \u0648\u0628\u200c\u0633\u0631\u0648\u0631 \u0645\u062d\u0644\u06cc \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0648 \u062a\u0633\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f. \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646\u060c \u0634\u0645\u0627 \u0628\u0627 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0642\u0627\u0628\u0644 \u062d\u0630\u0641 \u0648 \u0628\u0627\u0632\u0633\u0627\u0632\u06cc \u06a9\u0627\u0631 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u062a\u0648\u0633\u0639\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0627\u0646\u062a\u0642\u0627\u0644 \u0628\u0647 \u0645\u062d\u06cc\u0637 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u0645\u0641\u06cc\u062f \u0628\u0627\u0634\u062f.<\/p>\n<\/div>\n<div aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"flex overflow-x-auto justify-start mt-0.5 gap-1.5 text-gray-600 buttons dark:text-gray-500 svelte-1qscqw6\">\n<div id=\"bits-c585\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<div id=\"bits-c617\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Regenerate\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"flex flex-col justify-between px-5 mb-3 w-full max-w-[808px] 2xl:max-w-[894px] min-w-[334px] mx-auto rounded-lg group\">\n<div id=\"message-02a0970e-1bce-4244-bede-846ff8118935\" class=\"flex w-full user-message relative\" dir=\"\">\n<div id=\"message-02a0970e-1bce-4244-bede-846ff8118935-start\" class=\"absolute -top-12\"><\/div>\n<div class=\"flex-auto w-0 max-w-full\">\n<div class=\"chat-user w-full min-w-full markdown-prose\">\n<div class=\"relative w-full\">\n<div class=\"flex justify-end pb-1\">\n<div class=\"relative max-w-[90%] flex flex-col gap-1 text-[#0d0d0d] dark:text-[#fff] whitespace-pre-wrap data-[expanded=false]:max-h-[360px] leading-6\" data-expanded=\"false\">\u0627\u0632 \u0647\u0645\u0631\u0627\u0647\u06cc \u0634\u0645\u0627 \u0628\u0627 <strong><a href=\"https:\/\/parmin.cloud\/\">\u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/a><\/strong> \u0633\u067e\u0627\u0633\u06af\u0632\u0627\u0631\u06cc\u0645.<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0647 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u06a9\u0631\u062f\u0646 (Containerize) \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0628\u0647 \u0641\u0631\u0622\u06cc\u0646\u062f \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0648 \u0627\u062c\u0632\u0627\u06cc \u0622\u0646 \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627\u06cc \u0633\u0628\u06a9\u06cc \u0628\u0647 \u0646\u0627\u0645 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 \u06af\u0641\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f. \u0627\u06cc\u0646 \u0645\u062d\u06cc\u0637\u200c\u0647\u0627 \u0627\u06cc\u0632\u0648\u0644\u0647 \u0648 \u0642\u0627\u0628\u0644 \u062d\u0630\u0641\/\u0628\u0627\u0632\u0633\u0627\u0632\u06cc \u0647\u0633\u062a\u0646\u062f \u0648 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 \u0627\u0632 \u0622\u0646\u200c\u0647\u0627 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647\u060c \u062a\u0633\u062a \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 (Deploy) \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0627\u0632 Docker Compose \u0628\u0631\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u06a9\u0631\u062f\u0646 &hellip;<\/p>\n","protected":false},"author":9,"featured_media":6760,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[258,142,215,150],"tags":[],"class_list":["post-6759","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ubuntu","category-142","category-server","category-linux"],"_links":{"self":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6759","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/comments?post=6759"}],"version-history":[{"count":0,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6759\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media\/6760"}],"wp:attachment":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media?parent=6759"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/categories?post=6759"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/tags?post=6759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}