{"id":8939,"date":"2024-07-15T10:37:41","date_gmt":"2024-07-15T10:37:41","guid":{"rendered":"https:\/\/www.webhi.com\/how-to\/?p=8939"},"modified":"2024-07-15T10:37:43","modified_gmt":"2024-07-15T10:37:43","slug":"%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83","status":"publish","type":"post","link":"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/","title":{"rendered":"\u0643\u064a\u0641\u064a\u0629 \u0625\u0646\u0634\u0627\u0621 \u062d\u0627\u0648\u064a\u0629 \u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u0627\u064a\u062b\u0648\u0646 \u0641\u0644\u0627\u0633\u0643"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1200\" height=\"675\" src=\"https:\/\/www.webhi.com\/how-to\/gilrogre\/2024\/07\/python_flask_docker_ar.jpg\" alt=\"\u062a\u062d\u0627\u0648\u064a\u0629 \u062a\u0637\u0628\u064a\u0642 Flask \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker Linux Debian Centos Redhat Ubuntu\" class=\"wp-image-8952\" srcset=\"https:\/\/www.webhi.com\/how-to\/gilrogre\/2024\/07\/python_flask_docker_ar.jpg 1200w, https:\/\/www.webhi.com\/how-to\/gilrogre\/2024\/07\/python_flask_docker_ar-300x169.jpg 300w, https:\/\/www.webhi.com\/how-to\/gilrogre\/2024\/07\/python_flask_docker_ar-1024x576.jpg 1024w, https:\/\/www.webhi.com\/how-to\/gilrogre\/2024\/07\/python_flask_docker_ar-768x432.jpg 768w, https:\/\/www.webhi.com\/how-to\/gilrogre\/2024\/07\/python_flask_docker_ar-150x84.jpg 150w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D8%A7%D9%84%D9%85%D9%82%D8%AF%D9%85%D8%A9\">\u0627\u0644\u0645\u0642\u062f\u0645\u0629<\/h2>\n\n\n\n<p>\u0644\u0642\u062f \u0623\u062d\u062f\u062b\u062a \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker \u062b\u0648\u0631\u0629 \u0641\u064a \u0637\u0631\u064a\u0642\u0629 \u0646\u0634\u0631 \u0627\u0644\u0645\u0637\u0648\u0631\u064a\u0646 \u0644\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a\u060c \u0645\u0645\u0627 \u064a\u0648\u0641\u0631 \u0628\u064a\u0626\u0629 \u0645\u062a\u0633\u0642\u0629 \u0645\u0646 \u0627\u0644\u062a\u0637\u0648\u064a\u0631 \u0625\u0644\u0649 \u0627\u0644\u0625\u0646\u062a\u0627\u062c. \u0633\u064a\u0633\u064a\u0631 \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644 \u0639\u0644\u0649 \u062e\u0637\u0648\u0627\u062a \u062d\u0627\u0648\u064a\u0629 \u062a\u0637\u0628\u064a\u0642 Python Flask \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker. \u0633\u0646\u063a\u0637\u064a \u0643\u0644 \u0634\u064a\u0621 \u0645\u0646 \u0625\u0639\u062f\u0627\u062f \u0628\u064a\u0626\u062a\u0643\u060c \u0648\u0625\u0646\u0634\u0627\u0621 Dockerfiles\u060c \u0648\u062a\u0634\u063a\u064a\u0644 \u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u062f\u0627\u062e\u0644 \u062d\u0627\u0648\u064a\u0629 Docker.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D9%85%D8%A7-%D9%87%D9%88-docker%D8%9F\">\u0645\u0627 \u0647\u0648 Docker\u061f<\/h2>\n\n\n\n<p>Docker \u0647\u0648 \u0645\u0646\u0635\u0629 \u0645\u0641\u062a\u0648\u062d\u0629 \u0627\u0644\u0645\u0635\u062f\u0631 \u0645\u0635\u0645\u0645\u0629 \u0644\u0623\u062a\u0645\u062a\u0629 \u0646\u0634\u0631 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u062f\u0627\u062e\u0644 \u062d\u0627\u0648\u064a\u0627\u062a \u062e\u0641\u064a\u0641\u0629 \u0627\u0644\u0648\u0632\u0646 \u0648\u0645\u062d\u0645\u0648\u0644\u0629. \u062a\u0642\u0648\u0645 \u0647\u0630\u0647 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0628\u062f\u0645\u062c \u0643\u0648\u062f \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0645\u0639 \u062c\u0645\u064a\u0639 \u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f\u064a\u0627\u062a \u0648\u0627\u0644\u0645\u0643\u062a\u0628\u0627\u062a \u0648\u0627\u0644\u062a\u0643\u0648\u064a\u0646\u0627\u062a \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0647\u060c \u0645\u0645\u0627 \u064a\u0636\u0645\u0646 \u062a\u0634\u063a\u064a\u0644\u0647 \u0628\u0633\u0644\u0627\u0633\u0629 \u0639\u0628\u0631 \u0628\u064a\u0626\u0627\u062a \u062d\u0648\u0633\u0628\u0629 \u0645\u062e\u062a\u0644\u0641\u0629.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D9%84%D9%85%D8%A7%D8%B0%D8%A7-%D8%AA%D8%AD%D8%A7%D9%88%D9%8A-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-flask%D8%9F\">\u0644\u0645\u0627\u0630\u0627 \u062a\u062d\u0627\u0648\u064a \u062a\u0637\u0628\u064a\u0642 Flask\u061f<\/h2>\n\n\n\n<p>\u062a\u062d\u0627\u0648\u064a\u0629 \u062a\u0637\u0628\u064a\u0642 Flask \u062a\u0642\u062f\u0645 \u0627\u0644\u0639\u062f\u064a\u062f \u0645\u0646 \u0627\u0644\u0641\u0648\u0627\u0626\u062f:<\/p>\n\n\n\n<ul>\n<li><strong>\u0627\u0644\u062a\u0646\u0627\u0633\u0642:<\/strong>&nbsp;\u062a\u0636\u0645\u0646 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0623\u0646 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u064a\u0639\u0645\u0644 \u0641\u064a \u0646\u0641\u0633 \u0627\u0644\u0628\u064a\u0626\u0629\u060c \u0645\u0645\u0627 \u064a\u0644\u063a\u064a \u0645\u0634\u0643\u0644\u0629 &#8220;\u064a\u0639\u0645\u0644 \u0639\u0644\u0649 \u062c\u0647\u0627\u0632\u064a&#8221;.<\/li>\n\n\n\n<li><strong>\u0642\u0627\u0628\u0644\u064a\u0629 \u0627\u0644\u0646\u0642\u0644:<\/strong>&nbsp;\u064a\u0645\u0643\u0646 \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0639\u0644\u0649 \u0623\u064a \u0646\u0638\u0627\u0645 \u064a\u062f\u0639\u0645 Docker\u060c \u0645\u0645\u0627 \u064a\u0633\u0647\u0644 \u0646\u0642\u0644 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0628\u064a\u0646 \u0628\u064a\u0626\u0627\u062a \u0645\u062e\u062a\u0644\u0641\u0629.<\/li>\n\n\n\n<li><strong>\u0642\u0627\u0628\u0644\u064a\u0629 \u0627\u0644\u062a\u0648\u0633\u0639:<\/strong>&nbsp;\u064a\u062c\u0639\u0644 Docker \u0645\u0646 \u0627\u0644\u0633\u0647\u0644 \u062a\u0648\u0633\u064a\u0639 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0623\u0641\u0642\u064a\u0627\u064b \u0639\u0646 \u0637\u0631\u064a\u0642 \u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0639\u062f\u064a\u062f \u0645\u0646 \u0645\u062b\u064a\u0644\u0627\u062a \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a.<\/li>\n\n\n\n<li><strong>\u0627\u0644\u0639\u0632\u0644:<\/strong>&nbsp;\u062a\u0639\u0645\u0644 \u0643\u0644 \u062d\u0627\u0648\u064a\u0629 \u0641\u064a \u0628\u064a\u0626\u062a\u0647\u0627 \u0627\u0644\u0645\u0639\u0632\u0648\u0644\u0629\u060c \u0645\u0645\u0627 \u064a\u0645\u0646\u0639 \u0627\u0644\u062a\u0639\u0627\u0631\u0636\u0627\u062a \u0628\u064a\u0646 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0645\u062e\u062a\u0644\u0641\u0629 \u0639\u0644\u0649 \u0646\u0641\u0633 \u0627\u0644\u0645\u0636\u064a\u0641.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D8%A7%D9%84%D9%85%D8%AA%D8%B7%D9%84%D8%A8%D8%A7%D8%AA-%D8%A7%D9%84%D8%A3%D8%B3%D8%A7%D8%B3%D9%8A%D8%A9\">\u0627\u0644\u0645\u062a\u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629<\/h2>\n\n\n\n<p>\u0642\u0628\u0644 \u0623\u0646 \u0646\u0628\u062f\u0623\u060c \u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646 \u0644\u062f\u064a\u0643 \u0645\u0627 \u064a\u0644\u064a:<\/p>\n\n\n\n<ul>\n<li>\u0645\u0639\u0631\u0641\u0629 \u0623\u0633\u0627\u0633\u064a\u0629 \u0628\u0640 Python \u0648Flask<\/li>\n\n\n\n<li>Docker \u0645\u062b\u0628\u062a \u0639\u0644\u0649 \u062c\u0647\u0627\u0632\u0643<\/li>\n\n\n\n<li>\u062a\u0637\u0628\u064a\u0642 Flask \u0646\u0645\u0648\u0630\u062c\u064a<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D8%A5%D8%B9%D8%AF%D8%A7%D8%AF-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-flask-%D8%A7%D9%84%D8%AE%D8%A7%D8%B5-%D8%A8%D9%83\">\u0625\u0639\u062f\u0627\u062f \u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u0643<\/h2>\n\n\n\n<p>\u0644\u0646\u0628\u062f\u0623 \u0628\u0625\u0639\u062f\u0627\u062f \u062a\u0637\u0628\u064a\u0642 Flask \u0628\u0633\u064a\u0637. \u0642\u0645 \u0628\u0625\u0646\u0634\u0627\u0621 \u062f\u0644\u064a\u0644 \u0644\u0645\u0634\u0631\u0648\u0639\u0643 \u0648\u0627\u0646\u062a\u0642\u0644 \u0625\u0644\u064a\u0647:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"bash\" class=\"language-bash\">$ mkdir flask_app\n$ cd flask_app<\/code><\/pre>\n\n\n\n<p>\u0642\u0645 \u0628\u0625\u0646\u0634\u0627\u0621 \u0628\u064a\u0626\u0629 \u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0648\u062a\u0646\u0634\u064a\u0637\u0647\u0627:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"bash\" class=\"language-bash\">$ python -m venv venv\n$ source venv\/bin\/activate  <em># \u0639\u0644\u0649 Windows \u0627\u0633\u062a\u062e\u062f\u0645 `venv\\Scripts\\activate`<\/em><\/code><\/pre>\n\n\n\n<p>\u0642\u0645 \u0628\u062a\u062b\u0628\u064a\u062a Flask:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"bash\" class=\"language-bash\">$ pip install Flask<\/code><\/pre>\n\n\n\n<p>\u0642\u0645 \u0628\u0625\u0646\u0634\u0627\u0621 \u0645\u0644\u0641 \u0628\u0627\u0633\u0645&nbsp;<code>app.py<\/code>&nbsp;\u0628\u0627\u0644\u0645\u062d\u062a\u0648\u0649 \u0627\u0644\u062a\u0627\u0644\u064a:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"python\" class=\"language-python\">from flask import Flask\n\napp = Flask(__name__)\n\n@app.route('\/')\ndef home():\n    return \"Hello, Docker!\"\n\nif __name__ == '__main__':\n    app.run(host='0.0.0.0', port=5000)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D9%83%D8%AA%D8%A7%D8%A8%D8%A9-dockerfile\">\u0643\u062a\u0627\u0628\u0629 Dockerfile<\/h2>\n\n\n\n<p>Dockerfile \u0647\u0648 \u0645\u0633\u062a\u0646\u062f \u0646\u0635\u064a \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u062c\u0645\u064a\u0639 \u0627\u0644\u0623\u0648\u0627\u0645\u0631 \u0644\u062a\u062c\u0645\u064a\u0639 \u0635\u0648\u0631\u0629. \u0642\u0645 \u0628\u0625\u0646\u0634\u0627\u0621 \u0645\u0644\u0641 \u0628\u0627\u0633\u0645&nbsp;<code>Dockerfile<\/code>&nbsp;\u0641\u064a \u062c\u0630\u0631 \u062f\u0644\u064a\u0644 \u0645\u0634\u0631\u0648\u0639\u0643:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"yaml\" class=\"language-yaml\"><em># \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0635\u0648\u0631\u0629 Python \u0627\u0644\u0631\u0633\u0645\u064a\u0629<\/em>\nFROM python:3.9-slim\n\n<em># \u062a\u0639\u064a\u064a\u0646 \u062f\u0644\u064a\u0644 \u0627\u0644\u0639\u0645\u0644 \u062f\u0627\u062e\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0629<\/em>\nWORKDIR \/app\n\n<em># \u0646\u0633\u062e \u0645\u062d\u062a\u0648\u064a\u0627\u062a \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u062d\u0627\u0644\u064a \u0625\u0644\u0649 \u0627\u0644\u062d\u0627\u0648\u064a\u0629 \u0641\u064a \/app<\/em>\nCOPY . \/app\n\n<em># \u062a\u062b\u0628\u064a\u062a \u0627\u0644\u062d\u0632\u0645 \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629 \u0627\u0644\u0645\u062d\u062f\u062f\u0629 \u0641\u064a requirements.txt<\/em>\nRUN pip install --no-cache-dir -r requirements.txt\n\n<em># \u062c\u0639\u0644 \u0627\u0644\u0645\u0646\u0641\u0630 5000 \u0645\u062a\u0627\u062d\u064b\u0627 \u0644\u0644\u0639\u0627\u0644\u0645 \u062e\u0627\u0631\u062c \u0647\u0630\u0647 \u0627\u0644\u062d\u0627\u0648\u064a\u0629<\/em>\nEXPOSE 5000\n\n<em># \u062a\u0639\u0631\u064a\u0641 \u0645\u062a\u063a\u064a\u0631 \u0627\u0644\u0628\u064a\u0626\u0629<\/em>\nENV NAME World\n\n<em># \u062a\u0634\u063a\u064a\u0644 app.py \u0639\u0646\u062f \u0625\u0637\u0644\u0627\u0642 \u0627\u0644\u062d\u0627\u0648\u064a\u0629<\/em>\nCMD [\"python\", \"app.py\"]<\/code><\/pre>\n\n\n\n<p>\u0642\u0645 \u0628\u0625\u0646\u0634\u0627\u0621 \u0645\u0644\u0641&nbsp;<code>requirements.txt<\/code>&nbsp;\u0648\u0623\u0636\u0641 Flask \u0625\u0644\u064a\u0647:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"properties\" class=\"language-properties\">Flask==2.0.1<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D8%A8%D9%86%D8%A7%D8%A1-%D8%A7%D9%84%D8%B5%D9%88%D8%B1%D8%A9-docker\">\u0628\u0646\u0627\u0621 \u0627\u0644\u0635\u0648\u0631\u0629 Docker<\/h2>\n\n\n\n<p>\u0645\u0639 \u062c\u0627\u0647\u0632\u064a\u0629 Dockerfile \u0648\u062a\u0637\u0628\u064a\u0642\u0643\u060c \u064a\u0645\u0643\u0646\u0643 \u0628\u0646\u0627\u0621 \u0635\u0648\u0631\u0629 Docker \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643. \u0641\u064a \u0627\u0644\u0645\u062d\u0637\u0629 \u0627\u0644\u0637\u0631\u0641\u064a\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643\u060c \u0642\u0645 \u0628\u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0623\u0645\u0631 \u0627\u0644\u062a\u0627\u0644\u064a:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"bash\" class=\"language-bash\">$ docker build -t flask-app .<\/code><\/pre>\n\n\n\n<p>\u064a\u0628\u0646\u064a \u0647\u0630\u0627 \u0627\u0644\u0623\u0645\u0631 \u0635\u0648\u0631\u0629 \u0628\u0627\u0633\u0645&nbsp;<code>flask-app<\/code>&nbsp;\u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Dockerfile \u0641\u064a \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u062d\u0627\u0644\u064a.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D8%AA%D8%B4%D8%BA%D9%8A%D9%84-%D8%A7%D9%84%D8%AD%D8%A7%D9%88%D9%8A%D8%A9-docker\">\u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062d\u0627\u0648\u064a\u0629 Docker<\/h2>\n\n\n\n<p>\u0628\u0639\u062f \u0628\u0646\u0627\u0621 \u0635\u0648\u0631\u0629 Docker\u060c \u064a\u0645\u0643\u0646\u0643 \u062a\u0634\u063a\u064a\u0644\u0647\u0627 \u0641\u064a \u062d\u0627\u0648\u064a\u0629. \u0627\u0633\u062a\u062e\u062f\u0645 \u0627\u0644\u0623\u0645\u0631 \u0627\u0644\u062a\u0627\u0644\u064a \u0644\u0628\u062f\u0621 \u0627\u0644\u062d\u0627\u0648\u064a\u0629:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"bash\" class=\"language-bash\">$ docker run -d -p 5000:5000 flask-app<\/code><\/pre>\n\n\n\n<p>\u064a\u0634\u063a\u0644 \u0647\u0630\u0627 \u0627\u0644\u0623\u0645\u0631 \u0627\u0644\u062d\u0627\u0648\u064a\u0629 \u0641\u064a \u0648\u0636\u0639 \u0645\u0646\u0641\u0635\u0644 (<code>-d<\/code>) \u0648\u064a\u0631\u0628\u0637 \u0627\u0644\u0645\u0646\u0641\u0630 5000 \u0641\u064a \u0627\u0644\u0645\u0636\u064a\u0641 \u0628\u0627\u0644\u0645\u0646\u0641\u0630 5000 \u0641\u064a \u0627\u0644\u062d\u0627\u0648\u064a\u0629.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D8%A7%D8%AE%D8%AA%D8%A8%D8%A7%D8%B1-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-flask-%D8%A7%D9%84%D8%AE%D8%A7%D8%B5-%D8%A8%D9%83\">\u0627\u062e\u062a\u0628\u0627\u0631 \u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u0643<\/h2>\n\n\n\n<p>\u0627\u0641\u062a\u062d \u0645\u062a\u0635\u0641\u062d \u0627\u0644\u0648\u064a\u0628 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0648\u0627\u0646\u062a\u0642\u0644 \u0625\u0644\u0649&nbsp;<code>http:\/\/localhost:5000<\/code>. \u064a\u062c\u0628 \u0623\u0646 \u062a\u0631\u0649 \u0627\u0644\u0631\u0633\u0627\u0644\u0629 &#8220;Hello, Docker!&#8221; \u0645\u0645\u0627 \u064a\u0624\u0643\u062f \u0623\u0646 \u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u064a\u0639\u0645\u0644 \u062f\u0627\u062e\u0644 \u062d\u0627\u0648\u064a\u0629 Docker.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D8%A5%D8%AF%D8%A7%D8%B1%D8%A9-%D8%A7%D9%84%D8%A7%D8%B9%D8%AA%D9%85%D8%A7%D8%AF%D9%8A%D8%A7%D8%AA-%D8%A8%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85-docker-compose\">\u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f\u064a\u0627\u062a \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker Compose<\/h2>\n\n\n\n<p>Docker Compose \u0647\u0648 \u0623\u062f\u0627\u0629 \u0644\u062a\u0639\u0631\u064a\u0641 \u0648\u062a\u0634\u063a\u064a\u0644 \u062a\u0637\u0628\u064a\u0642\u0627\u062a Docker \u0645\u062a\u0639\u062f\u062f\u0629 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a. \u0644\u0625\u062f\u0627\u0631\u0629 \u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0648\u0627\u0639\u062a\u0645\u0627\u062f\u064a\u0627\u062a\u0647\u060c \u0642\u0645 \u0628\u0625\u0646\u0634\u0627\u0621 \u0645\u0644\u0641&nbsp;<code>docker-compose.yml<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"yaml\" class=\"language-yaml\">version: '3'\nservices:\n  web:\n    build: .\n    ports:\n      - \"5000:5000\"<\/code><\/pre>\n\n\n\n<p>\u0642\u0645 \u0628\u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u0623\u0645\u0631 \u0627\u0644\u062a\u0627\u0644\u064a \u0644\u0628\u062f\u0621 \u062a\u0637\u0628\u064a\u0642\u0643 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker Compose:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"bash\" class=\"language-bash\">$ docker-compose up -d<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D9%85%D8%AA%D8%BA%D9%8A%D8%B1%D8%A7%D8%AA-%D8%A7%D9%84%D8%A8%D9%8A%D8%A6%D8%A9\">\u0627\u0644\u062a\u0639\u0627\u0645\u0644 \u0645\u0639 \u0645\u062a\u063a\u064a\u0631\u0627\u062a \u0627\u0644\u0628\u064a\u0626\u0629<\/h2>\n\n\n\n<p>\u064a\u0645\u0643\u0646 \u0625\u062f\u0627\u0631\u0629 \u0645\u062a\u063a\u064a\u0631\u0627\u062a \u0627\u0644\u0628\u064a\u0626\u0629 \u0628\u0634\u0643\u0644 \u0623\u0643\u062b\u0631 \u0641\u0639\u0627\u0644\u064a\u0629 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker Compose. \u0642\u0645 \u0628\u0625\u0646\u0634\u0627\u0621 \u0645\u0644\u0641&nbsp;<code>.env<\/code>&nbsp;\u0644\u0645\u062a\u063a\u064a\u0631\u0627\u062a \u0627\u0644\u0628\u064a\u0626\u0629 \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"properties\" class=\"language-properties\">FLASK_ENV=development<\/code><\/pre>\n\n\n\n<p>\u0642\u0645 \u0628\u062a\u0639\u062f\u064a\u0644&nbsp;<code>docker-compose.yml<\/code>&nbsp;\u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0644\u062a\u0636\u0645\u064a\u0646 \u0645\u062a\u063a\u064a\u0631\u0627\u062a \u0627\u0644\u0628\u064a\u0626\u0629:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"yaml\" class=\"language-yaml\">version: '3'\nservices:\n  web:\n    build: .\n    ports:\n      - \"5000:5000\"\n    environment:\n      - FLASK_ENV=${FLASK_ENV}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D8%AA%D8%B1%D9%83%D9%8A%D8%A8-%D8%A7%D9%84%D8%A3%D8%AD%D8%AC%D8%A7%D9%85-%D9%84%D9%84%D8%AA%D8%B7%D9%88%D9%8A%D8%B1\">\u062a\u0631\u0643\u064a\u0628 \u0627\u0644\u0623\u062d\u062c\u0627\u0645 \u0644\u0644\u062a\u0637\u0648\u064a\u0631<\/h2>\n\n\n\n<p>\u0644\u062a\u0645\u0643\u064a\u0646 \u0625\u0639\u0627\u062f\u0629 \u0627\u0644\u062a\u062d\u0645\u064a\u0644 \u0627\u0644\u062a\u0644\u0642\u0627\u0626\u064a \u0623\u062b\u0646\u0627\u0621 \u0627\u0644\u062a\u0637\u0648\u064a\u0631\u060c \u0642\u0645 \u0628\u062a\u0631\u0643\u064a\u0628 \u062f\u0644\u064a\u0644 \u0645\u0634\u0631\u0648\u0639\u0643 \u0643\u062d\u062c\u0645 \u0641\u064a \u0627\u0644\u062d\u0627\u0648\u064a\u0629. \u0642\u0645 \u0628\u062a\u062d\u062f\u064a\u062b&nbsp;<code>docker-compose.yml<\/code>&nbsp;\u0627\u0644\u062e\u0627\u0635 \u0628\u0643:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"yaml\" class=\"language-yaml\">version: '3'\nservices:\n  web:\n    build: .\n    ports:\n      - \"5000:5000\"\n    volumes:\n      - .:\/app\n    environment:\n      - FLASK_ENV=${FLASK_ENV}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D8%AD%D8%A7%D9%88%D9%8A%D8%A9-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-flask-%D9%85%D8%B9-%D9%82%D8%A7%D8%B9%D8%AF%D8%A9-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA\">\u062d\u0627\u0648\u064a\u0629 \u062a\u0637\u0628\u064a\u0642 Flask \u0645\u0639 \u0642\u0627\u0639\u062f\u0629 \u0628\u064a\u0627\u0646\u0627\u062a<\/h2>\n\n\n\n<p>\u062a\u062a\u0637\u0644\u0628 \u0627\u0644\u0639\u062f\u064a\u062f \u0645\u0646 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0642\u0627\u0639\u062f\u0629 \u0628\u064a\u0627\u0646\u0627\u062a. \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u0642\u0633\u0645\u060c \u0633\u0646\u0636\u064a\u0641 \u0642\u0627\u0639\u062f\u0629 \u0628\u064a\u0627\u0646\u0627\u062a PostgreSQL \u0625\u0644\u0649 \u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u0646\u0627 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker Compose.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"%D8%A5%D8%B6%D8%A7%D9%81%D8%A9-postgresql-%D8%A5%D9%84%D9%89-docker-compose\">\u0625\u0636\u0627\u0641\u0629 PostgreSQL \u0625\u0644\u0649 Docker Compose<\/h3>\n\n\n\n<p>\u0642\u0645 \u0628\u062a\u062d\u062f\u064a\u062b&nbsp;<code>docker-compose.yml<\/code>&nbsp;\u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0644\u062a\u0636\u0645\u064a\u0646 \u062e\u062f\u0645\u0629 PostgreSQL:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"yaml\" class=\"language-yaml\">version: '3'\nservices:\n  web:\n    build: .\n    ports:\n      - \"5000:5000\"\n    volumes:\n      - .:\/app\n    environment:\n      - FLASK_ENV=${FLASK_ENV}\n      - DATABASE_URL=postgresql:\/\/postgres:password@db:5432\/postgres\n  db:\n    image: postgres:13\n    environment:\n      - POSTGRES_PASSWORD=password<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"%D8%AA%D8%AD%D8%AF%D9%8A%D8%AB-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82-flask\">\u062a\u062d\u062f\u064a\u062b \u062a\u0637\u0628\u064a\u0642 Flask<\/h3>\n\n\n\n<p>\u0642\u0645 \u0628\u062a\u0639\u062f\u064a\u0644 \u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645 SQLAlchemy \u0644\u0644\u0639\u0645\u0644\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u0639\u0644\u0642\u0629 \u0628\u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a. \u0642\u0645 \u0628\u062a\u062b\u0628\u064a\u062a \u0627\u0644\u062d\u0632\u0645 \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"bash\" class=\"language-bash\">$ pip install Flask-SQLAlchemy psycopg2-binary<\/code><\/pre>\n\n\n\n<p>\u0642\u0645 \u0628\u062a\u062d\u062f\u064a\u062b&nbsp;<code>requirements.txt<\/code>&nbsp;\u0627\u0644\u062e\u0627\u0635 \u0628\u0643:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"properties\" class=\"language-properties\">Flask==2.0.1\nFlask-SQLAlchemy==2.5.1\npsycopg2-binary==2.9.1<\/code><\/pre>\n\n\n\n<p>\u0642\u0645 \u0628\u062a\u062d\u062f\u064a\u062b&nbsp;<code>app.py<\/code>&nbsp;\u0644\u062a\u0636\u0645\u064a\u0646 \u062a\u0643\u0648\u064a\u0646\u0627\u062a \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"python\" class=\"language-python\">from flask import Flask\nfrom flask_sqlalchemy import SQLAlchemy\n\napp = Flask(__name__)\napp.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql:\/\/postgres:password@db:5432\/postgres'\ndb = SQLAlchemy(app)\n\n@app.route('\/')\ndef home():\n    return \"Hello, Docker with PostgreSQL!\"\n\nif __name__ == '__main__':\n    app.run(host='0.0.0.0', port=5000)<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"%D8%AA%D8%B4%D8%BA%D9%8A%D9%84-%D8%A7%D9%84%D8%AA%D8%B7%D8%A8%D9%8A%D9%82\">\u062a\u0634\u063a\u064a\u0644 \u0627\u0644\u062a\u0637\u0628\u064a\u0642<\/h3>\n\n\n\n<p>\u0642\u0645 \u0628\u0628\u0646\u0627\u0621 \u0648\u0628\u062f\u0621 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker Compose:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"bash\" class=\"language-bash\">$ docker-compose up --build<\/code><\/pre>\n\n\n\n<p>\u064a\u062c\u0628 \u0623\u0646 \u064a\u0643\u0648\u0646 \u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0627\u0644\u0622\u0646 \u0645\u062a\u0635\u0644\u0627\u064b \u0628\u0642\u0627\u0639\u062f\u0629 \u0628\u064a\u0627\u0646\u0627\u062a PostgreSQL \u062a\u0639\u0645\u0644 \u062f\u0627\u062e\u0644 \u062d\u0627\u0648\u064a\u0629 Docker.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D8%AA%D8%AD%D8%B3%D9%8A%D9%86%D8%A7%D8%AA-%D9%85%D8%AA%D9%82%D8%AF%D9%85%D8%A9-%D9%84%D9%80-dockerfile\">\u062a\u062d\u0633\u064a\u0646\u0627\u062a \u0645\u062a\u0642\u062f\u0645\u0629 \u0644\u0640 Dockerfile<\/h2>\n\n\n\n<p>\u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u0624\u062f\u064a \u062a\u062d\u0633\u064a\u0646 Dockerfile \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0625\u0644\u0649 \u062a\u062d\u0633\u064a\u0646 \u0623\u0648\u0642\u0627\u062a \u0627\u0644\u0628\u0646\u0627\u0621 \u0648\u062a\u0642\u0644\u064a\u0644 \u062d\u062c\u0645 \u0627\u0644\u0635\u0648\u0631\u0629. \u0625\u0644\u064a\u0643 \u0628\u0639\u0636 \u0627\u0644\u0646\u0635\u0627\u0626\u062d:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"%D8%A8%D9%86%D8%A7%D8%A1%D8%A7%D8%AA-%D9%85%D8%AA%D8%B9%D8%AF%D8%AF%D8%A9-%D8%A7%D9%84%D9%85%D8%B1%D8%A7%D8%AD%D9%84\">\u0628\u0646\u0627\u0621\u0627\u062a \u0645\u062a\u0639\u062f\u062f\u0629 \u0627\u0644\u0645\u0631\u0627\u062d\u0644<\/h3>\n\n\n\n<p>\u0627\u0633\u062a\u062e\u062f\u0645 \u0628\u0646\u0627\u0621\u0627\u062a \u0645\u062a\u0639\u062f\u062f\u0629 \u0627\u0644\u0645\u0631\u0627\u062d\u0644 \u0644\u0644\u062d\u0641\u0627\u0638 \u0639\u0644\u0649 \u0635\u0648\u0631\u0629 \u0646\u0647\u0627\u0626\u064a\u0629 \u0646\u062d\u064a\u0641\u0629. \u0625\u0644\u064a\u0643 \u0645\u062b\u0627\u0644:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"yaml\" class=\"language-yaml\"><em># \u0627\u0644\u0645\u0631\u062d\u0644\u0629 \u0627\u0644\u0623\u0648\u0644\u0649: \u0628\u0646\u0627\u0621 \u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f\u064a\u0627\u062a<\/em>\nFROM python:3.9-slim as builder\nWORKDIR \/app\nCOPY requirements.txt .\nRUN pip install --no-cache-dir -r requirements.txt\n\n<em># \u0627\u0644\u0645\u0631\u062d\u0644\u0629 \u0627\u0644\u062b\u0627\u0646\u064a\u0629: \u0646\u0633\u062e \u0627\u0644\u0645\u0644\u0641\u0627\u062a \u0627\u0644\u0636\u0631\u0648\u0631\u064a\u0629 \u0641\u0642\u0637<\/em>\nFROM python:3.9-slim\nWORKDIR \/app\nCOPY --from=builder \/usr\/local\/lib\/python3.9\/site-packages \/usr\/local\/lib\/python3.9\/site-packages\nCOPY . \/app\nEXPOSE 5000\nCMD [\"python\", \"app.py\"]<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"%D8%AA%D8%AE%D8%B2%D9%8A%D9%86-%D8%A7%D9%84%D8%A7%D8%B9%D8%AA%D9%85%D8%A7%D8%AF%D9%8A%D8%A7%D8%AA-%D9%81%D9%8A-%D8%A7%D9%84%D8%B0%D8%A7%D9%83%D8%B1%D8%A9-%D8%A7%D9%84%D9%85%D8%A4%D9%82%D8%AA%D8%A9\">\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f\u064a\u0627\u062a \u0641\u064a \u0627\u0644\u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u0645\u0624\u0642\u062a\u0629<\/h3>\n\n\n\n<p>\u0627\u0633\u062a\u0641\u062f \u0645\u0646 \u062a\u062e\u0632\u064a\u0646 \u0637\u0628\u0642\u0627\u062a Docker \u0627\u0644\u0645\u0624\u0642\u062a\u0629 \u0639\u0646 \u0637\u0631\u064a\u0642 \u0646\u0633\u062e \u0645\u0644\u0641 \u0627\u0644\u0627\u0639\u062a\u0645\u0627\u062f\u064a\u0627\u062a \u0641\u0642\u0637 \u0642\u0628\u0644 \u0643\u0648\u062f \u0627\u0644\u062a\u0637\u0628\u064a\u0642:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"yaml\" class=\"language-yaml\">COPY requirements.txt .\nRUN pip install --no-cache-dir -r requirements.txt\nCOPY . \/app<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D8%AA%D8%B5%D8%AD%D9%8A%D8%AD-%D8%A7%D9%84%D8%A3%D8%AE%D8%B7%D8%A7%D8%A1-%D9%81%D9%8A-%D8%A7%D9%84%D8%AD%D8%A7%D9%88%D9%8A%D8%A7%D8%AA-docker\">\u062a\u0635\u062d\u064a\u062d \u0627\u0644\u0623\u062e\u0637\u0627\u0621 \u0641\u064a \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a Docker<\/h2>\n\n\n\n<p>\u064a\u0645\u0643\u0646 \u0623\u0646 \u064a\u0643\u0648\u0646 \u062a\u0635\u062d\u064a\u062d \u0627\u0644\u0623\u062e\u0637\u0627\u0621 \u0641\u064a \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a Docker \u062a\u062d\u062f\u064a\u064b\u0627. \u0625\u0644\u064a\u0643 \u0628\u0639\u0636 \u0627\u0644\u0627\u0633\u062a\u0631\u0627\u062a\u064a\u062c\u064a\u0627\u062a:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"%D8%A7%D9%84%D9%88%D8%B5%D9%88%D9%84-%D8%A5%D9%84%D9%89-%D8%A7%D9%84%D8%B5%D8%AF%D9%81%D8%A9-%D9%81%D9%8A-%D8%A7%D9%84%D8%AD%D8%A7%D9%88%D9%8A%D8%A9\">\u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u0635\u062f\u0641\u0629 \u0641\u064a \u0627\u0644\u062d\u0627\u0648\u064a\u0629<\/h3>\n\n\n\n<p>\u064a\u0645\u0643\u0646\u0643 \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0627\u0644\u0635\u062f\u0641\u0629 \u0641\u064a \u062d\u0627\u0648\u064a\u0629 \u0642\u064a\u062f \u0627\u0644\u062a\u0634\u063a\u064a\u0644 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"bash\" class=\"language-bash\">$ docker exec -it &lt;container_id&gt; \/bin\/bash<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"%D8%B9%D8%B1%D8%B6-%D8%B3%D8%AC%D9%84%D8%A7%D8%AA-%D8%A7%D9%84%D8%AD%D8%A7%D9%88%D9%8A%D8%A9\">\u0639\u0631\u0636 \u0633\u062c\u0644\u0627\u062a \u0627\u0644\u062d\u0627\u0648\u064a\u0629<\/h3>\n\n\n\n<p>\u0639\u0631\u0636 \u0633\u062c\u0644\u0627\u062a \u062d\u0627\u0648\u064a\u0629 \u0642\u064a\u062f \u0627\u0644\u062a\u0634\u063a\u064a\u0644:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"bash\" class=\"language-bash\">$ docker logs &lt;container_id&gt;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D9%86%D8%B4%D8%B1-%D8%AA%D8%B7%D8%A8%D9%8A%D9%82%D8%A7%D8%AA-flask-docker\">\u0646\u0634\u0631 \u062a\u0637\u0628\u064a\u0642\u0627\u062a Flask Docker<\/h2>\n\n\n\n<p>\u064a\u0645\u0643\u0646 \u0646\u0634\u0631 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0645\u062d\u0627\u0648\u064a\u0629 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker \u0628\u0637\u0631\u0642 \u0645\u062e\u062a\u0644\u0641\u0629. \u0625\u0644\u064a\u0643 \u0628\u0639\u0636 \u0627\u0644\u062e\u064a\u0627\u0631\u0627\u062a \u0627\u0644\u0634\u0627\u0626\u0639\u0629:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"docker-hub\">Docker Hub<\/h3>\n\n\n\n<p>Docker Hub \u0647\u0648 \u0645\u0633\u062a\u0648\u062f\u0639 \u0633\u062d\u0627\u0628\u064a \u062d\u064a\u062b \u064a\u0645\u0643\u0646\u0643 \u062a\u062e\u0632\u064a\u0646 \u0648\u0645\u0634\u0627\u0631\u0643\u0629 \u0635\u0648\u0631 Docker. \u0642\u0645 \u0628\u062f\u0641\u0639 \u0635\u0648\u0631\u062a\u0643 \u0625\u0644\u0649 Docker Hub:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"bash\" class=\"language-bash\">$ docker tag flask-app username\/flask-app\n$ docker push username\/flask-app<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"kubernetes\">Kubernetes<\/h3>\n\n\n\n<p>Kubernetes \u0647\u0648 \u0646\u0638\u0627\u0645 \u0645\u0641\u062a\u0648\u062d \u0627\u0644\u0645\u0635\u062f\u0631 \u0644\u0623\u062a\u0645\u062a\u0629 \u0646\u0634\u0631 \u0648\u062a\u0648\u0633\u064a\u0639 \u0648\u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0645\u062d\u0627\u0648\u064a\u0629. \u0623\u0646\u0634\u0626 \u062a\u0643\u0648\u064a\u0646 \u0646\u0634\u0631 Kubernetes:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"yaml\" class=\"language-yaml\">apiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: flask-app\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: flask-app\n  template:\n    metadata:\n      labels:\n        app: flask-app\n    spec:\n      containers:\n      - name: flask-app\n        image: username\/flask-app\n        ports:\n        - containerPort: 5000<\/code><\/pre>\n\n\n\n<p>\u0642\u0645 \u0628\u062a\u0637\u0628\u064a\u0642 \u062a\u0643\u0648\u064a\u0646 \u0627\u0644\u0646\u0634\u0631:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"bash\" class=\"language-bash\">$ kubectl apply -f deployment.yaml<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"aws-elastic-beanstalk\">AWS Elastic Beanstalk<\/h3>\n\n\n\n<p>AWS Elastic Beanstalk \u0647\u0648 \u062e\u062f\u0645\u0629 \u0633\u0647\u0644\u0629 \u0627\u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0644\u0646\u0634\u0631 \u0648\u062a\u0648\u0633\u064a\u0639 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0648\u064a\u0628. \u0642\u0645 \u0628\u062a\u062b\u0628\u064a\u062a Elastic Beanstalk \u0641\u064a \u0645\u0634\u0631\u0648\u0639\u0643:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"bash\" class=\"language-bash\">$ eb init -p docker flask-app\n$ eb create flask-app-env<\/code><\/pre>\n\n\n\n<p>\u0627\u0646\u0634\u0631 \u062a\u0637\u0628\u064a\u0642\u0643:<\/p>\n\n\n\n<pre class=\"wp-block-code ltr\"><code lang=\"bash\" class=\"language-bash\">$ eb deploy<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D8%A7%D9%84%D8%A3%D8%B3%D8%A6%D9%84%D8%A9-%D8%A7%D9%84%D8%B4%D8%A7%D8%A6%D8%B9%D8%A9\">\u0627\u0644\u0623\u0633\u0626\u0644\u0629 \u0627\u0644\u0634\u0627\u0626\u0639\u0629<\/h2>\n\n\n\n<p><strong>\u0645\u0627 \u0647\u0648 Docker\u061f<\/strong>&nbsp;Docker \u0647\u0648 \u0645\u0646\u0635\u0629 \u0645\u0641\u062a\u0648\u062d\u0629 \u0627\u0644\u0645\u0635\u062f\u0631 \u062a\u0642\u0648\u0645 \u0628\u0623\u062a\u0645\u062a\u0629 \u0646\u0634\u0631 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u062f\u0627\u062e\u0644 \u062d\u0627\u0648\u064a\u0627\u062a \u062e\u0641\u064a\u0641\u0629 \u0627\u0644\u0648\u0632\u0646 \u0648\u0645\u062d\u0645\u0648\u0644\u0629.<\/p>\n\n\n\n<p><strong>\u0644\u0645\u0627\u0630\u0627 \u064a\u062c\u0628 \u0623\u0646 \u0623\u062d\u0627\u0648\u064a \u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u064a\u061f<\/strong>&nbsp;\u062a\u062d\u0627\u0648\u064a\u0629 \u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u062a\u0636\u0645\u0646 \u0627\u0644\u062a\u0646\u0627\u0633\u0642 \u0639\u0628\u0631 \u0627\u0644\u0628\u064a\u0626\u0627\u062a \u0627\u0644\u0645\u062e\u062a\u0644\u0641\u0629\u060c \u062a\u062d\u0633\u0646 \u0645\u0646 \u0642\u0627\u0628\u0644\u064a\u0629 \u0627\u0644\u0646\u0642\u0644\u060c \u0627\u0644\u062a\u0648\u0633\u0639 \u0648\u062a\u0648\u0641\u0631 \u0627\u0644\u0639\u0632\u0644 \u0628\u064a\u0646 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a.<\/p>\n\n\n\n<p><strong>\u0643\u064a\u0641 \u064a\u0645\u0643\u0646\u0646\u064a \u0628\u0646\u0627\u0621 \u0635\u0648\u0631\u0629 Docker \u0644\u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u064a\u061f<\/strong>&nbsp;\u0642\u0645 \u0628\u0625\u0646\u0634\u0627\u0621 Dockerfile \u0628\u0627\u0644\u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u0644\u0627\u0632\u0645\u0629 \u0648\u0642\u0645 \u0628\u062a\u0646\u0641\u064a\u0630 \u0627\u0644\u0623\u0645\u0631&nbsp;<code>docker build -t &lt;image_name&gt; .<\/code>.<\/p>\n\n\n\n<p><strong>\u0647\u0644 \u064a\u0645\u0643\u0646\u0646\u064a \u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker Compose \u0644\u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u064a\u061f<\/strong>&nbsp;\u0646\u0639\u0645\u060c Docker Compose \u064a\u0645\u0643\u0646\u0647 \u0625\u062f\u0627\u0631\u0629 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0645\u062a\u0639\u062f\u062f\u0629 \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0648\u0627\u0644\u062a\u0639\u0627\u0645\u0644 \u0645\u0639 \u0645\u062a\u063a\u064a\u0631\u0627\u062a \u0627\u0644\u0628\u064a\u0626\u0629 \u0648\u062a\u0631\u0643\u064a\u0628 \u0627\u0644\u0623\u062d\u062c\u0627\u0645.<\/p>\n\n\n\n<p><strong>\u0643\u064a\u0641 \u064a\u0645\u0643\u0646\u0646\u064a \u062a\u0648\u0635\u064a\u0644 \u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u064a \u0628\u0642\u0627\u0639\u062f\u0629 \u0628\u064a\u0627\u0646\u0627\u062a PostgreSQL \u0641\u064a Docker\u061f<\/strong>&nbsp;\u062d\u062f\u062f \u062e\u062f\u0645\u0629 PostgreSQL \u0641\u064a \u0645\u0644\u0641&nbsp;<code>docker-compose.yml<\/code>&nbsp;\u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0648\u0642\u0645 \u0628\u062a\u0643\u0648\u064a\u0646 \u062a\u0637\u0628\u064a\u0642 Flask \u0644\u0627\u0633\u062a\u062e\u062f\u0627\u0645 URL \u0642\u0627\u0639\u062f\u0629 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a.<\/p>\n\n\n\n<p><strong>\u0643\u064a\u0641 \u064a\u0645\u0643\u0646\u0646\u064a \u0646\u0634\u0631 \u062a\u0637\u0628\u064a\u0642 Flask Docker \u0627\u0644\u062e\u0627\u0635 \u0628\u064a\u061f<\/strong>&nbsp;\u064a\u0645\u0643\u0646\u0643 \u0646\u0634\u0631 \u062a\u0637\u0628\u064a\u0642\u0643 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker Hub\u060c Kubernetes \u0623\u0648 AWS Elastic Beanstalk\u060c \u0645\u0646 \u0628\u064a\u0646 \u0645\u0646\u0635\u0627\u062a \u0623\u062e\u0631\u0649.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"%D8%A7%D9%84%D8%AE%D9%84%D8%A7%D8%B5%D8%A9\">\u0627\u0644\u062e\u0644\u0627\u0635\u0629<\/h2>\n\n\n\n<p>\u062a\u062d\u0627\u0648\u064a\u0629 \u062a\u0637\u0628\u064a\u0642 Python Flask \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker \u062a\u0628\u0633\u0637 \u0639\u0645\u0644\u064a\u0629 \u0627\u0644\u0646\u0634\u0631\u060c \u062a\u0636\u0645\u0646 \u0627\u0644\u062a\u0646\u0627\u0633\u0642 \u0639\u0628\u0631 \u0627\u0644\u0628\u064a\u0626\u0627\u062a \u0648\u062a\u062d\u0633\u0646 \u0645\u0646 \u0642\u0627\u0628\u0644\u064a\u0629 \u0627\u0644\u062a\u0648\u0633\u0639. \u0628\u0627\u062a\u0628\u0627\u0639 \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644\u060c \u064a\u062c\u0628 \u0623\u0646 \u062a\u0643\u0648\u0646 \u0642\u0627\u062f\u0631\u064b\u0627 \u0639\u0644\u0649 \u0625\u0639\u062f\u0627\u062f Docker\u060c \u0625\u0646\u0634\u0627\u0621 Dockerfiles\u060c \u0648\u062a\u0634\u063a\u064a\u0644 \u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u062f\u0627\u062e\u0644 \u062d\u0627\u0648\u064a\u0627\u062a. \u0627\u0633\u062a\u0641\u062f \u0645\u0646 \u0627\u0644\u0645\u064a\u0632\u0627\u062a \u0627\u0644\u0642\u0648\u064a\u0629 \u0644\u0640 Docker \u0644\u062a\u062d\u0633\u064a\u0646 \u0633\u064a\u0631 \u0639\u0645\u0644 \u0627\u0644\u062a\u0637\u0648\u064a\u0631 \u0648\u0627\u0644\u0646\u0634\u0631 \u0627\u0644\u062e\u0627\u0635 \u0628\u0643<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u0644\u0645\u0642\u062f\u0645\u0629 \u0644\u0642\u062f \u0623\u062d\u062f\u062b\u062a \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker \u062b\u0648\u0631\u0629 \u0641\u064a \u0637\u0631\u064a\u0642\u0629 \u0646\u0634\u0631 \u0627\u0644\u0645\u0637\u0648\u0631\u064a\u0646 \u0644\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a\u060c \u0645\u0645\u0627 \u064a\u0648\u0641\u0631 \u0628\u064a\u0626\u0629 \u0645\u062a\u0633\u0642\u0629 \u0645\u0646 \u0627\u0644\u062a\u0637\u0648\u064a\u0631 \u0625\u0644\u0649 \u0627\u0644\u0625\u0646\u062a\u0627\u062c. \u0633\u064a\u0633\u064a\u0631 \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644 \u0639\u0644\u0649 \u062e\u0637\u0648\u0627\u062a \u062d\u0627\u0648\u064a\u0629 \u062a\u0637\u0628\u064a\u0642 Python Flask \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker. \u0633\u0646\u063a\u0637\u064a \u0643\u0644 \u0634\u064a\u0621 \u0645\u0646 \u0625\u0639\u062f\u0627\u062f \u0628\u064a\u0626\u062a\u0643\u060c \u0648\u0625\u0646\u0634\u0627\u0621 Dockerfiles\u060c \u0648\u062a\u0634\u063a\u064a\u0644 \u062a\u0637\u0628\u064a\u0642 Flask \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u062f\u0627\u062e\u0644 \u062d\u0627\u0648\u064a\u0629 Docker. \u0645\u0627 \u0647\u0648 Docker\u061f Docker \u0647\u0648 \u0645\u0646\u0635\u0629 \u0645\u0641\u062a\u0648\u062d\u0629 \u0627\u0644\u0645\u0635\u062f\u0631 ..<\/p>\n<div class=\"clear-fix\"><\/div>\n<p><a href=\"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/\" title=\"read more...\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[71,184],"tags":[],"yoast_head":"\n<title>\u0643\u064a\u0641\u064a\u0629 \u0625\u0646\u0634\u0627\u0621 \u062d\u0627\u0648\u064a\u0629 \u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u0627\u064a\u062b\u0648\u0646 \u0641\u0644\u0627\u0633\u0643 - WebHi Tutorials &amp; Documentations<\/title>\n<meta name=\"description\" content=\"\u062a\u0639\u0644\u0645 \u0643\u064a\u0641\u064a\u0629 \u062d\u0627\u0648\u064a\u0629 \u062a\u0637\u0628\u064a\u0642 Python Flask \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker \u0645\u0646 \u062e\u0644\u0627\u0644 \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u0634\u0627\u0645\u0644. \u062a\u0639\u0644\u0645 \u062e\u0637\u0648\u0627\u062a \u0625\u0639\u062f\u0627\u062f Docker\u060c \u0648\u0625\u0646\u0634\u0627\u0621 Dockerfiles\u060c \u0648\u0646\u0634\u0631 \u062a\u0637\u0628\u064a\u0642\u0627\u062a Flask \u0641\u064a \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.webhi.com\/how-to\/ar\/\u0643\u064a\u0641\u064a\u0629-\u0625\u0646\u0634\u0627\u0621-\u062d\u0627\u0648\u064a\u0629-\u0644\u062a\u0637\u0628\u064a\u0642-\u0628\u0627\u064a\u062b\u0648\u0646-\u0641\u0644\u0627\u0633\u0643\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0643\u064a\u0641\u064a\u0629 \u0625\u0646\u0634\u0627\u0621 \u062d\u0627\u0648\u064a\u0629 \u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u0627\u064a\u062b\u0648\u0646 \u0641\u0644\u0627\u0633\u0643 - WebHi Tutorials &amp; Documentations\" \/>\n<meta property=\"og:description\" content=\"\u062a\u0639\u0644\u0645 \u0643\u064a\u0641\u064a\u0629 \u062d\u0627\u0648\u064a\u0629 \u062a\u0637\u0628\u064a\u0642 Python Flask \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker \u0645\u0646 \u062e\u0644\u0627\u0644 \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u0634\u0627\u0645\u0644. \u062a\u0639\u0644\u0645 \u062e\u0637\u0648\u0627\u062a \u0625\u0639\u062f\u0627\u062f Docker\u060c \u0648\u0625\u0646\u0634\u0627\u0621 Dockerfiles\u060c \u0648\u0646\u0634\u0631 \u062a\u0637\u0628\u064a\u0642\u0627\u062a Flask \u0641\u064a \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webhi.com\/how-to\/ar\/\u0643\u064a\u0641\u064a\u0629-\u0625\u0646\u0634\u0627\u0621-\u062d\u0627\u0648\u064a\u0629-\u0644\u062a\u0637\u0628\u064a\u0642-\u0628\u0627\u064a\u062b\u0648\u0646-\u0641\u0644\u0627\u0633\u0643\/\" \/>\n<meta property=\"og:site_name\" content=\"WebHi Tutorials &amp; Documentations\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webhi.technology\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-15T10:37:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-15T10:37:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webhi.com\/how-to\/gilrogre\/2024\/07\/python_flask_docker_ar.jpg\" \/>\n<meta name=\"author\" content=\"webhi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@WebHiTechnology\" \/>\n<meta name=\"twitter:site\" content=\"@WebHiTechnology\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"webhi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/\"},\"author\":{\"name\":\"webhi\",\"@id\":\"https:\/\/www.webhi.com\/how-to\/#\/schema\/person\/b31e76e2311cdc0bb90f5e2733059a54\"},\"headline\":\"\u0643\u064a\u0641\u064a\u0629 \u0625\u0646\u0634\u0627\u0621 \u062d\u0627\u0648\u064a\u0629 \u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u0627\u064a\u062b\u0648\u0646 \u0641\u0644\u0627\u0633\u0643\",\"datePublished\":\"2024-07-15T10:37:41+00:00\",\"dateModified\":\"2024-07-15T10:37:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/\"},\"wordCount\":155,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.webhi.com\/how-to\/#organization\"},\"articleSection\":[\"\u0625\u062f\u0627\u0631\u0629 \u0646\u0638\u0627\u0645 \u0644\u064a\u0646\u0643\u0633\",\"\u0627\u0644\u0645\u062d\u0627\u0643\u0627\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0648\u0627\u0644\u062d\u0648\u0633\u0628\u0629 \u0627\u0644\u0633\u062d\u0627\u0628\u064a\u0629\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/\",\"url\":\"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/\",\"name\":\"\u0643\u064a\u0641\u064a\u0629 \u0625\u0646\u0634\u0627\u0621 \u062d\u0627\u0648\u064a\u0629 \u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u0627\u064a\u062b\u0648\u0646 \u0641\u0644\u0627\u0633\u0643 - WebHi Tutorials &amp; Documentations\",\"isPartOf\":{\"@id\":\"https:\/\/www.webhi.com\/how-to\/#website\"},\"datePublished\":\"2024-07-15T10:37:41+00:00\",\"dateModified\":\"2024-07-15T10:37:43+00:00\",\"description\":\"\u062a\u0639\u0644\u0645 \u0643\u064a\u0641\u064a\u0629 \u062d\u0627\u0648\u064a\u0629 \u062a\u0637\u0628\u064a\u0642 Python Flask \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker \u0645\u0646 \u062e\u0644\u0627\u0644 \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u0634\u0627\u0645\u0644. \u062a\u0639\u0644\u0645 \u062e\u0637\u0648\u0627\u062a \u0625\u0639\u062f\u0627\u062f Docker\u060c \u0648\u0625\u0646\u0634\u0627\u0621 Dockerfiles\u060c \u0648\u0646\u0634\u0631 \u062a\u0637\u0628\u064a\u0642\u0627\u062a Flask \u0641\u064a \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webhi.com\/how-to\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0643\u064a\u0641\u064a\u0629 \u0625\u0646\u0634\u0627\u0621 \u062d\u0627\u0648\u064a\u0629 \u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u0627\u064a\u062b\u0648\u0646 \u0641\u0644\u0627\u0633\u0643\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webhi.com\/how-to\/#website\",\"url\":\"https:\/\/www.webhi.com\/how-to\/\",\"name\":\"WebHi Tutorials &amp; Documentations\",\"description\":\"System administration and knowledge base\",\"publisher\":{\"@id\":\"https:\/\/www.webhi.com\/how-to\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webhi.com\/how-to\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webhi.com\/how-to\/#organization\",\"name\":\"WebHi Technology\",\"url\":\"https:\/\/www.webhi.com\/how-to\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webhi.com\/how-to\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webhi.com\/how-to\/gilrogre\/2022\/07\/logo.png\",\"contentUrl\":\"https:\/\/www.webhi.com\/how-to\/gilrogre\/2022\/07\/logo.png\",\"width\":288,\"height\":95,\"caption\":\"WebHi Technology\"},\"image\":{\"@id\":\"https:\/\/www.webhi.com\/how-to\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webhi.technology\",\"https:\/\/twitter.com\/WebHiTechnology\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webhi.com\/how-to\/#\/schema\/person\/b31e76e2311cdc0bb90f5e2733059a54\",\"name\":\"webhi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webhi.com\/how-to\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.webhi.com\/how-to\/ahuphiph\/litespeed\/avatar\/e20da107d0f4c765ead2eef88ad019d8.jpg?ver=1780005063\",\"contentUrl\":\"https:\/\/www.webhi.com\/how-to\/ahuphiph\/litespeed\/avatar\/e20da107d0f4c765ead2eef88ad019d8.jpg?ver=1780005063\",\"caption\":\"webhi\"},\"sameAs\":[\"https:\/\/www.webhi.com\/how-to\"],\"url\":\"https:\/\/www.webhi.com\/how-to\/author\/webhi\/\"}]}<\/script>\n","yoast_head_json":{"title":"\u0643\u064a\u0641\u064a\u0629 \u0625\u0646\u0634\u0627\u0621 \u062d\u0627\u0648\u064a\u0629 \u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u0627\u064a\u062b\u0648\u0646 \u0641\u0644\u0627\u0633\u0643 - WebHi Tutorials &amp; Documentations","description":"\u062a\u0639\u0644\u0645 \u0643\u064a\u0641\u064a\u0629 \u062d\u0627\u0648\u064a\u0629 \u062a\u0637\u0628\u064a\u0642 Python Flask \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker \u0645\u0646 \u062e\u0644\u0627\u0644 \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u0634\u0627\u0645\u0644. \u062a\u0639\u0644\u0645 \u062e\u0637\u0648\u0627\u062a \u0625\u0639\u062f\u0627\u062f Docker\u060c \u0648\u0625\u0646\u0634\u0627\u0621 Dockerfiles\u060c \u0648\u0646\u0634\u0631 \u062a\u0637\u0628\u064a\u0642\u0627\u062a Flask \u0641\u064a \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.webhi.com\/how-to\/ar\/\u0643\u064a\u0641\u064a\u0629-\u0625\u0646\u0634\u0627\u0621-\u062d\u0627\u0648\u064a\u0629-\u0644\u062a\u0637\u0628\u064a\u0642-\u0628\u0627\u064a\u062b\u0648\u0646-\u0641\u0644\u0627\u0633\u0643\/","og_locale":"en_US","og_type":"article","og_title":"\u0643\u064a\u0641\u064a\u0629 \u0625\u0646\u0634\u0627\u0621 \u062d\u0627\u0648\u064a\u0629 \u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u0627\u064a\u062b\u0648\u0646 \u0641\u0644\u0627\u0633\u0643 - WebHi Tutorials &amp; Documentations","og_description":"\u062a\u0639\u0644\u0645 \u0643\u064a\u0641\u064a\u0629 \u062d\u0627\u0648\u064a\u0629 \u062a\u0637\u0628\u064a\u0642 Python Flask \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker \u0645\u0646 \u062e\u0644\u0627\u0644 \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u0634\u0627\u0645\u0644. \u062a\u0639\u0644\u0645 \u062e\u0637\u0648\u0627\u062a \u0625\u0639\u062f\u0627\u062f Docker\u060c \u0648\u0625\u0646\u0634\u0627\u0621 Dockerfiles\u060c \u0648\u0646\u0634\u0631 \u062a\u0637\u0628\u064a\u0642\u0627\u062a Flask \u0641\u064a \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a.","og_url":"https:\/\/www.webhi.com\/how-to\/ar\/\u0643\u064a\u0641\u064a\u0629-\u0625\u0646\u0634\u0627\u0621-\u062d\u0627\u0648\u064a\u0629-\u0644\u062a\u0637\u0628\u064a\u0642-\u0628\u0627\u064a\u062b\u0648\u0646-\u0641\u0644\u0627\u0633\u0643\/","og_site_name":"WebHi Tutorials &amp; Documentations","article_publisher":"https:\/\/www.facebook.com\/webhi.technology","article_published_time":"2024-07-15T10:37:41+00:00","article_modified_time":"2024-07-15T10:37:43+00:00","og_image":[{"url":"https:\/\/www.webhi.com\/how-to\/gilrogre\/2024\/07\/python_flask_docker_ar.jpg"}],"author":"webhi","twitter_card":"summary_large_image","twitter_creator":"@WebHiTechnology","twitter_site":"@WebHiTechnology","twitter_misc":{"Written by":"webhi","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/#article","isPartOf":{"@id":"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/"},"author":{"name":"webhi","@id":"https:\/\/www.webhi.com\/how-to\/#\/schema\/person\/b31e76e2311cdc0bb90f5e2733059a54"},"headline":"\u0643\u064a\u0641\u064a\u0629 \u0625\u0646\u0634\u0627\u0621 \u062d\u0627\u0648\u064a\u0629 \u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u0627\u064a\u062b\u0648\u0646 \u0641\u0644\u0627\u0633\u0643","datePublished":"2024-07-15T10:37:41+00:00","dateModified":"2024-07-15T10:37:43+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/"},"wordCount":155,"commentCount":0,"publisher":{"@id":"https:\/\/www.webhi.com\/how-to\/#organization"},"articleSection":["\u0625\u062f\u0627\u0631\u0629 \u0646\u0638\u0627\u0645 \u0644\u064a\u0646\u0643\u0633","\u0627\u0644\u0645\u062d\u0627\u0643\u0627\u0629 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0648\u0627\u0644\u062d\u0648\u0633\u0628\u0629 \u0627\u0644\u0633\u062d\u0627\u0628\u064a\u0629"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/","url":"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/","name":"\u0643\u064a\u0641\u064a\u0629 \u0625\u0646\u0634\u0627\u0621 \u062d\u0627\u0648\u064a\u0629 \u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u0627\u064a\u062b\u0648\u0646 \u0641\u0644\u0627\u0633\u0643 - WebHi Tutorials &amp; Documentations","isPartOf":{"@id":"https:\/\/www.webhi.com\/how-to\/#website"},"datePublished":"2024-07-15T10:37:41+00:00","dateModified":"2024-07-15T10:37:43+00:00","description":"\u062a\u0639\u0644\u0645 \u0643\u064a\u0641\u064a\u0629 \u062d\u0627\u0648\u064a\u0629 \u062a\u0637\u0628\u064a\u0642 Python Flask \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Docker \u0645\u0646 \u062e\u0644\u0627\u0644 \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644 \u0627\u0644\u0634\u0627\u0645\u0644. \u062a\u0639\u0644\u0645 \u062e\u0637\u0648\u0627\u062a \u0625\u0639\u062f\u0627\u062f Docker\u060c \u0648\u0625\u0646\u0634\u0627\u0621 Dockerfiles\u060c \u0648\u0646\u0634\u0631 \u062a\u0637\u0628\u064a\u0642\u0627\u062a Flask \u0641\u064a \u0627\u0644\u062d\u0627\u0648\u064a\u0627\u062a.","breadcrumb":{"@id":"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.webhi.com\/how-to\/ar\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%a5%d9%86%d8%b4%d8%a7%d8%a1-%d8%ad%d8%a7%d9%88%d9%8a%d8%a9-%d9%84%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-%d8%a8%d8%a7%d9%8a%d8%ab%d9%88%d9%86-%d9%81%d9%84%d8%a7%d8%b3%d9%83\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webhi.com\/how-to\/"},{"@type":"ListItem","position":2,"name":"\u0643\u064a\u0641\u064a\u0629 \u0625\u0646\u0634\u0627\u0621 \u062d\u0627\u0648\u064a\u0629 \u0644\u062a\u0637\u0628\u064a\u0642 \u0628\u0627\u064a\u062b\u0648\u0646 \u0641\u0644\u0627\u0633\u0643"}]},{"@type":"WebSite","@id":"https:\/\/www.webhi.com\/how-to\/#website","url":"https:\/\/www.webhi.com\/how-to\/","name":"WebHi Tutorials &amp; Documentations","description":"System administration and knowledge base","publisher":{"@id":"https:\/\/www.webhi.com\/how-to\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webhi.com\/how-to\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webhi.com\/how-to\/#organization","name":"WebHi Technology","url":"https:\/\/www.webhi.com\/how-to\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webhi.com\/how-to\/#\/schema\/logo\/image\/","url":"https:\/\/www.webhi.com\/how-to\/gilrogre\/2022\/07\/logo.png","contentUrl":"https:\/\/www.webhi.com\/how-to\/gilrogre\/2022\/07\/logo.png","width":288,"height":95,"caption":"WebHi Technology"},"image":{"@id":"https:\/\/www.webhi.com\/how-to\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webhi.technology","https:\/\/twitter.com\/WebHiTechnology"]},{"@type":"Person","@id":"https:\/\/www.webhi.com\/how-to\/#\/schema\/person\/b31e76e2311cdc0bb90f5e2733059a54","name":"webhi","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webhi.com\/how-to\/#\/schema\/person\/image\/","url":"https:\/\/www.webhi.com\/how-to\/ahuphiph\/litespeed\/avatar\/e20da107d0f4c765ead2eef88ad019d8.jpg?ver=1780005063","contentUrl":"https:\/\/www.webhi.com\/how-to\/ahuphiph\/litespeed\/avatar\/e20da107d0f4c765ead2eef88ad019d8.jpg?ver=1780005063","caption":"webhi"},"sameAs":["https:\/\/www.webhi.com\/how-to"],"url":"https:\/\/www.webhi.com\/how-to\/author\/webhi\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webhi.com\/how-to\/wp-json\/wp\/v2\/posts\/8939"}],"collection":[{"href":"https:\/\/www.webhi.com\/how-to\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webhi.com\/how-to\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webhi.com\/how-to\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webhi.com\/how-to\/wp-json\/wp\/v2\/comments?post=8939"}],"version-history":[{"count":7,"href":"https:\/\/www.webhi.com\/how-to\/wp-json\/wp\/v2\/posts\/8939\/revisions"}],"predecessor-version":[{"id":8958,"href":"https:\/\/www.webhi.com\/how-to\/wp-json\/wp\/v2\/posts\/8939\/revisions\/8958"}],"wp:attachment":[{"href":"https:\/\/www.webhi.com\/how-to\/wp-json\/wp\/v2\/media?parent=8939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webhi.com\/how-to\/wp-json\/wp\/v2\/categories?post=8939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webhi.com\/how-to\/wp-json\/wp\/v2\/tags?post=8939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}