]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Russian translation for `docs/ru/docs/deployment/docker.md` (#9971)
authorVladislav Kramorenko <85196001+Xewus@users.noreply.github.com>
Thu, 10 Aug 2023 15:53:26 +0000 (18:53 +0300)
committerGitHub <noreply@github.com>
Thu, 10 Aug 2023 15:53:26 +0000 (17:53 +0200)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Yois4101 <119609381+Yois4101@users.noreply.github.com>
docs/ru/docs/deployment/docker.md [new file with mode: 0644]

diff --git a/docs/ru/docs/deployment/docker.md b/docs/ru/docs/deployment/docker.md
new file mode 100644 (file)
index 0000000..f045ca9
--- /dev/null
@@ -0,0 +1,700 @@
+# FastAPI ΠΈ Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹
+
+ΠŸΡ€ΠΈ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ FastAPI, Ρ‡Π°ΡΡ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ **ΠΎΠ±Ρ€Π°Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Linux**. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π΄Π»Ρ ΡΡ‚ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ <a href="https://www.docker.com/" class="external-link" target="_blank">**Docker**</a>. Π—Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½Π° ΡΠ΅Ρ€Π²Π΅Ρ€Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΡΠΏΠΎΡΠΎΠ±ΠΎΠ².
+
+ИспользованиС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Linux ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€ΡΠ΄ ΠΏΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ  **Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ**, **Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ**, **простоту** ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅.
+
+!!! tip "Подсказка"
+    Π’ΠΎΡ€ΠΎΠΏΠΈΡ‚Π΅ΡΡŒ ΠΈΠ»ΠΈ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ Ρ ΡΡ‚ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ? ΠŸΠ΅Ρ€Π΅ΠΏΡ€Ρ‹Π³Π½ΠΈΡ‚Π΅ Π½Π° Ρ€Π°Π·Π΄Π΅Π» [Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Docker-ΠΎΠ±Ρ€Π°Π· Π΄Π»Ρ FastAPI πŸ‘‡](#docker-fastapi)
+
+<details>
+<summary>Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Dockerfile πŸ‘€</summary>
+
+```Dockerfile
+FROM python:3.9
+
+WORKDIR /code
+
+COPY ./requirements.txt /code/requirements.txt
+
+RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
+
+COPY ./app /code/app
+
+CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
+
+# Π•сли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΊΡΠΈ-сСрвСр, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Nginx ΠΈΠ»ΠΈ Traefik, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ --proxy-headers
+# CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80", "--proxy-headers"]
+```
+
+</details>
+
+## Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ "ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€"
+
+ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡ - ΡΡ‚ΠΎ **лСгковСсный** ΡΠΏΠΎΡΠΎΠ± ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²ΡΠ΅ Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² (Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²) Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π½Π° ΡΡ‚ΠΎΠΉ ΠΆΠ΅ ΡΠΈΡΡ‚Π΅ΠΌΠ΅.
+
+ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° Linux, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ΄Ρ€ΠΎ Linux Ρ…оста (ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ ΡΠ΅Ρ€Π²Π΅Ρ€Π° ΠΈ Ρ‚.ΠΏ.). Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½Ρ‹Π΅ (ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ Ρ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠ°ΡˆΠΈΠ½Π°ΠΌΠΈ, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡ‚Π΅ΠΌΡ‹).
+
+Благодаря ΡΡ‚ΠΎΠΌΡƒ, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ **ΠΌΠ°Π»ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ€Π΅ΡΡƒΡ€ΡΠΎΠ²**, ΡΡ€Π°Π²Π½ΠΈΠΌΠΎΠ΅ Ρ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ ΠΌΠ°ΡˆΠΈΠ½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»ΡŒΡˆΠ΅ Ρ€Π΅ΡΡƒΡ€ΡΠΎΠ²).
+
+ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ **ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅** ΠΏΡ€ΠΎΡ†Π΅ΡΡΡ‹ (Π½ΠΎ Ρ‡Π°ΡΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ†Π΅ΡΡ), Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ ΡΠΈΡΡ‚Π΅ΠΌΡƒ ΠΈ ΡΠ΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠΎΠΌ ΠΈ Ρ‚.ΠΏ.
+
+## Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ "ΠΎΠ±Ρ€Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°"
+
+Для Π·Π°ΠΏΡƒΡΠΊΠ° **ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°** Π½ΡƒΠΆΠ΅Π½ **ΠΎΠ±Ρ€Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°**.
+
+ΠžΠ±Ρ€Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° - ΡΡ‚ΠΎ **замороТСнная** Π²Π΅Ρ€ΡΠΈΡ Π²ΡΠ΅Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π»Ρ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. **Π—Π°ΠΌΠΎΡ€ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ** - ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ **ΠΎΠ±Ρ€Π°Π·** Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся, ΡΡ‚ΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡˆΡŒ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π²ΠΌΠ΅ΡΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅.
+
+Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ **ΠΎΠ±Ρ€Π°Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°**, Ρ…ранящСго Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅, ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ **ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€** ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π·, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡŠΡ‘ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ **исполняСтся**.
+
+Когда **ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€** Π·Π°ΠΏΡƒΡ‰Π΅Π½ (Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ **ΠΎΠ±Ρ€Π°Π·Π°**), ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡ ΠΈ Ρ‚.Π΄. Π­Ρ‚ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π½ΠΎ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒΡΡ Π² ΠΎΠ±Ρ€Π°Π·Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° (Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½Ρ‹ Π½Π° Π΄ΠΈΡΠΊ).
+
+ΠžΠ±Ρ€Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Ρ Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰Π΅ΠΌ **ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ**, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» `main.py`.
+
+И **ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€** (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ **ΠΎΠ±Ρ€Π°Π·Π°**) - ΡΡ‚ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€ ΠΎΠ±Ρ€Π°Π·Π°, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΊΠ°ΠΊ **процСсс**. ΠŸΠΎ Ρ„Π°ΠΊΡ‚Ρƒ, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΡ‹ (Ρ‡Π°Ρ‰Π΅, Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ†Π΅ΡΡ) ΠΈ ΠΎΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² Π½Π΅Ρ‚.
+
+## ΠžΠ±Ρ€Π°Π·Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²
+
+Docker ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΎΠ΄Π½ΠΈΠΌ ΠΎΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ **ΠΎΠ±Ρ€Π°Π·ΠΎΠ²** ΠΈ  **ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²** ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ΠΈΠΌΠΈ.
+
+БущСствуСт ΠΎΠ±Ρ‰Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹ΠΉ <a href="https://hub.docker.com/" class="external-link" target="_blank">Docker Hub</a> Ρ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ **ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ** ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ, Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
+
+К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π΅ΡΡ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ <a href="https://hub.docker.com/_/python" class="external-link" target="_blank">ΠΎΠ±Ρ€Π°Π· Python</a>.
+
+Π’Π°ΠΊΠΆΠ΅ Ρ‚Π°ΠΌ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…:
+
+* <a href="https://hub.docker.com/_/postgres" class="external-link" target="_blank">PostgreSQL</a>
+* <a href="https://hub.docker.com/_/mysql" class="external-link" target="_blank">MySQL</a>
+* <a href="https://hub.docker.com/_/mongo" class="external-link" target="_blank">MongoDB</a>
+* <a href="https://hub.docker.com/_/redis" class="external-link" target="_blank">Redis</a>
+
+ΠΈ Ρ‚.ΠΏ.
+
+ИспользованиС ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ **ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅** ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠΠ°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΡΠ»ΡƒΡ‡Π°Π΅Π² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ **ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π·** ΠΈ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡˆΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡ.
+
+Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠ½Ρ‚СйнСризация ΠΈ Docker, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π·Π½Π°Π½ΠΈΡ Ρ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.
+
+Π’Π°ΠΊ, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ **мноТСство ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²** Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Python-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π²Π΅Π±-сСрвСром, React-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ… Π²ΠΌΠ΅ΡΡ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ ΡΠ΅Ρ‚ΡŒ.
+
+ВсС ΡΠΈΡΡ‚Π΅ΠΌΡ‹ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ (Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ Docker ΠΈΠ»ΠΈ Kubernetes) ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½Ρ‹Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π΄Π»Ρ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΡΠ΅Ρ‚Π΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚вия.
+
+## ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡΡ‹
+
+ΠžΠ±Ρ‹Ρ‡Π½ΠΎ **ΠΎΠ±Ρ€Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°** ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ΅ **ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°**. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΏΡ€Π΅Π΄ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠŸΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π±Ρ‹ Π’Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Π»ΠΈ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π».
+
+Когда **ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€** Π·Π°ΠΏΡƒΡ‰Π΅Π½, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Π΅ Π² Π½Ρ‘ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠΠΎ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ± ΠΎΠ½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ» Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
+
+ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π±ΡƒΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся Π΅Π³ΠΎ **Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ†Π΅ΡΡ** (ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°).
+
+Π’ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся **Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ†Π΅ΡΡ**, Π½ΠΎ ΠΎΡ‚ Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅ΡΡΡ‹, Ρ‚ΠΎΠ³Π΄Π° Π² ΡΡ‚ΠΎΠΌ ΠΆΠ΅ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ **мноТСство ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ²**.
+
+ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½Π΅ ΡΡ‡ΠΈΡ‚аСтся Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌ, Π΅ΡΠ»ΠΈ Π² Π½Ρ‘ΠΌ **Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся Ρ…отя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ†Π΅ΡΡ**. Π•сли Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ†Π΅ΡΡ ΠΎΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½, Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΎΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½.
+
+## Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Docker-ΠΎΠ±Ρ€Π°Π· Π΄Π»Ρ FastAPI
+
+Π§Ρ‚ΠΎ ΠΆ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠΆΡ‘ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ! πŸš€
+
+Π― ΠΏΠΎΠΊΠ°ΠΆΡƒ Π’Π°ΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ **Docker-ΠΎΠ±Ρ€Π°Π·** Π΄Π»Ρ FastAPI **с Π½ΡƒΠ»Ρ**, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° **ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΎΠ±Ρ€Π°Π·Π΅ Python**.
+
+Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΡΠ³ΠΎΠ΄ΠΈΡ‚ся Π΄Π»Ρ **Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΡΠ»ΡƒΡ‡Π°Π΅Π²**, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:
+
+* Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ **Kubernetes** ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ
+* Π—апуск Π² **Raspberry Pi**
+* Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΡΠ΅Ρ€Π²ΠΈΡΠ°Ρ…, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π΄Π»Ρ Π’ас ΠΈ Ρ‚.ΠΏ.
+
+### Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ
+
+ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π’Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ **Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ**, ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°Ρ…одится Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.
+
+На Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π²Π»ΠΈΡΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Π’Π°ΠΌΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ **установки** ΡΡ‚ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (зависимостСй).
+
+Π§Π°Ρ‰Π΅ Π²ΡΠ΅Π³ΠΎ ΡΡ‚ΠΎ ΠΏΡ€ΠΎΡΡ‚ΠΎΠΉ Ρ„Π°ΠΉΠ» `requirements.txt` Ρ ΠΏΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ ΠΈΡ… Π²Π΅Ρ€ΡΠΈΠΉ.
+
+ΠŸΡ€ΠΈ ΡΡ‚ΠΎΠΌ Π’Ρ‹, Π΄Π»Ρ Π²Ρ‹Π±ΠΎΡ€Π° Π²Π΅Ρ€ΡΠΈΠΉ, Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ ΠΈΠ΄Π΅ΠΈ, Ρ‡Ρ‚ΠΎ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚Ρ‹ Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅ [О Π²Π΅Ρ€ΡΠΈΡΡ… FastAPI](./versions.md){.internal-link target=_blank}.
+
+Π’Π°Ρˆ Ρ„Π°ΠΉΠ» `requirements.txt` ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Ρ‚Π°ΠΊ:
+
+```
+fastapi>=0.68.0,<0.69.0
+pydantic>=1.8.0,<2.0.0
+uvicorn>=0.15.0,<0.16.0
+```
+
+Π£ΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΡ‰Π΅ Π²ΡΠ΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ `pip`:
+
+<div class="termy">
+
+```console
+$ pip install -r requirements.txt
+---> 100%
+Successfully installed fastapi pydantic uvicorn
+```
+
+</div>
+
+!!! info "Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ"
+    Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ями.
+
+    Π’ ΡΡ‚ΠΎΠΌ ΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅, Π½ΠΎ ΠΏΠΎΠ·ΠΆΠ΅, Ρ ΠΏΠΎΠΊΠ°ΠΆΡƒ Π’Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ Poetry. πŸ‘‡
+
+### Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ **FastAPI**
+
+* Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ `app` ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π½Π΅Ρ‘.
+* Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΡƒΡΡ‚ΠΎΠΉ Ρ„Π°ΠΉΠ» `__init__.py`.
+* Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» `main.py` ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ:
+
+```Python
+from typing import Union
+
+from fastapi import FastAPI
+
+app = FastAPI()
+
+
+@app.get("/")
+def read_root():
+    return {"Hello": "World"}
+
+
+@app.get("/items/{item_id}")
+def read_item(item_id: int, q: Union[str, None] = None):
+    return {"item_id": item_id, "q": q}
+```
+
+### Dockerfile
+
+Π’ ΡΡ‚ΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» `Dockerfile` ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ:
+
+```{ .dockerfile .annotate }
+# (1)
+FROM python:3.9
+
+# (2)
+WORKDIR /code
+
+# (3)
+COPY ./requirements.txt /code/requirements.txt
+
+# (4)
+RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
+
+# (5)
+COPY ./app /code/app
+
+# (6)
+CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
+```
+
+1. ΠΠ°Ρ‡Π½ΠΈΡ‚Π΅ Ρ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ Π΄Π»Ρ ΠΎΠ±Ρ€Π°Π·Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
+
+2. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅ΠΌΡ‹Π΅ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ `/code`.
+
+    Π˜Π½ΡΡ‚рукция ΡΠΎΠ·Π΄Π°ΡΡ‚ ΡΡ‚Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈ ΠΌΡ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΠΌ Π² Π½Π΅Ρ‘ Ρ„Π°ΠΉΠ» `requirements.txt` ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ `app`.
+
+3. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ями ΠΈΠ· Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π² `/code`.
+
+    Π‘Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ **Ρ‚ΠΎΠ»ΡŒΠΊΠΎ** Ρ„Π°ΠΉΠ» Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ями.
+
+    Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» **измСняСтся Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ Ρ€Π΅Π΄ΠΊΠΎ**, Docker ΠΈΡ‰Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡ€ΠΈ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΉΠΊΠ΅ ΠΎΠ±Ρ€Π°Π·Π° ΠΈ Π΅ΡΠ»ΠΈ Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ **кэш**, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ…ранятся ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΈ Π²Π΅Ρ€ΡΠΈΠΈ ΡΠ±ΠΎΡ€ΠΊΠΈ ΠΎΠ±Ρ€Π°Π·Π°.
+
+4. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ями.
+
+    ΠžΠΏΡ†ΠΈΡ `--no-cache-dir` ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ `pip` Π½Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Π΅ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡ… Π² ΡΠ»ΡƒΡ‡Π°Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π’ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, Π² ΡΠ»ΡƒΡ‡Π°Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ±ΠΎΡ€ΠΊΠΈ ΡΡ‚ΠΎΠ³ΠΎ ΡˆΠ°Π³Π°, ΠΎΠ½ΠΈ Π²ΡΡ‘ Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹.
+
+    !!! note "Π—Π°ΠΌΠ΅Ρ‚ΠΊΠ°"
+        ΠžΠΏΡ†ΠΈΡ `--no-cache-dir` Π½ΡƒΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π»Ρ `pip`, ΠΎΠ½Π° Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ‚ Π½Π° Docker ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹.
+
+    ΠžΠΏΡ†ΠΈΡ `--upgrade` ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ `pip` ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π΅ΠΌΠ»ΠΈ ΠΎΠ½ΠΈ ΡƒΠΆΠ΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Ρ‹.
+
+    ΠšΠ° ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΡˆΠ°Π³Π΅ Ρ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π°, ΡΡ‚ΠΎΡ‚ ΡˆΠ°Π³ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ **кэш Docker** Π² ΡΠ»ΡƒΡ‡Π°Π΅ ΠΎΡ‚сутствия ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
+
+    Π˜ΡΠΏΠΎΠ»ΡŒΠ·Ρ€Π²Π°Π½ΠΈΠ΅ ΠΊΡΡˆΠ°, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½Π° ΡΡ‚ΠΎΠΌ ΡˆΠ°Π³Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π’Π°ΠΌ **ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ** ΠΊΡƒΡ‡Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΡΠ±ΠΎΡ€ΠΊΠ΅ ΠΎΠ±Ρ€Π°Π·Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½Ρ‹ Π² ΠΊΠ΅ΡˆΠ΅, Π° Π½Π΅ **Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·**.
+
+5. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ `./app` Π²Π½ΡƒΡ‚Ρ€ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ `/code` (Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅).
+
+    Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΡΡ‚ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ **часто ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ся**, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ **кэша** Π½Π° ΡΡ‚ΠΎΠΌ ΡˆΠ°Π³Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΡΡ‚ΠΎΡ‚ ΡˆΠ°Π³ **Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ** `Dockerfile`, Π΄Π°Π±Ρ‹ Π½Π΅ Ρ‚Π΅Ρ€ΡΡ‚ΡŒ Π²Ρ‹Π³ΠΎΠ΄Ρƒ ΠΎΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΡˆΠ°Π³ΠΎΠ².
+
+6. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ **ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ**, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΡƒΡŽ ΡΠ΅Ρ€Π²Π΅Ρ€ `uvicorn`.
+
+    `CMD` ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΡΠΏΠΈΡΠΎΠΊ ΡΡ‚Ρ€ΠΎΠΊ, Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π·Π°ΠΏΡΡ‚Ρ‹ΠΌΠΈ, Π½ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π», ΡΠΎΠ±Ρ€Π°Π² ΠΈΠ· Π½ΠΈΡ… ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅.
+
+    Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π² **Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ**, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ `/code`, ΠΊΠΎΡ‚оая ΡƒΠΊΠ°Π·Π°Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ `WORKDIR /code`.
+
+    Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся Π²Π½ΡƒΡ‚Ρ€ΠΈΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ `/code`, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΠ»ΠΈ ΠΏΠ°ΠΏΠΊΡƒ `./app` Ρ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ‚ΠΎ **Uvicorn** ΡΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΈ **ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ** ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ `app` ΠΈΠ· Ρ„Π°ΠΉΠ»Π° `app.main`.
+
+!!! tip "Подсказка"
+    Π•сли Ρ‚ΠΊΠ½Ρ‘Ρ‚Π΅ Π½Π° ΠΊΡ€ΡƒΠΆΠΎΠΊ Ρ ΠΏΠ»ΡŽΡΠΎΠΌ, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡ. πŸ‘†
+
+На Π΄Π°Π½Π½ΠΎΠΌ ΡΡ‚Π°ΠΏΠ΅ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:
+
+```
+.
+β”œβ”€β”€ app
+β”‚Β Β  β”œβ”€β”€ __init__.py
+β”‚   β””── main.py
+β”œβ”€β”€ Dockerfile
+└── requirements.txt
+```
+
+#### Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΊΡΠΈ-сСрвСра
+
+Если Π’Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅Ρ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π·Π° ΠΏΡ€ΠΎΠΊΡΠΈ-сСрвСром Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ TLS (Π±Π°Π»Π°Π½ΡΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ), Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Nginx ΠΈΠ»ΠΈ Traefik, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ `--proxy-headers`, ΠΊΠΎΡ‚орая ΡƒΠΊΠ°ΠΆΠ΅Ρ‚ Uvicorn, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ·Π°Π΄ΠΈ ΠΏΡ€ΠΎΠΊΡΠΈ-сСрвСра ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌ ΠΎΡ‚правляСмым ΠΈΠΌ.
+
+```Dockerfile
+CMD ["uvicorn", "app.main:app", "--proxy-headers", "--host", "0.0.0.0", "--port", "80"]
+```
+
+#### ΠšΡΡˆ Docker'Π°
+
+Π’ Π½Π°ΡˆΠ΅ΠΌ `Dockerfile` ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Ρ…ΠΈΡ‚Ρ€ΠΎΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΡΠ½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ся **Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΉΠ» Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ями**, Π° Π½Π΅ Π²ΡΡ ΠΏΠ°ΠΏΠΊΠ° Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
+
+```Dockerfile
+COPY ./requirements.txt /code/requirements.txt
+```
+
+Docker ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π΅ΠΌΡƒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ **ΡΠΎΠ·Π΄Π°ΡŽΡ‚** ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² **пошагово**, Π΄ΠΎΠ±Π°Π²Π»ΡΡ **ΠΎΠ΄ΠΈΠ½ ΡΠ»ΠΎΠΉ Π½Π°Π΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌ**, Π½Π°Ρ‡ΠΈΠ½Π°Ρ Ρ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΡΡ‚Ρ€ΠΎΠΊΠΈ `Dockerfile` ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ Ρ„Π°ΠΉΠ»Ρ‹, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΈΠ· `Dockerfile`.
+
+ΠŸΡ€ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±Ρ€Π°Π·Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся **Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΊΡΡˆ** ΠΈ Π΅ΡΠ»ΠΈ Π² Ρ„Π°ΠΉΠ»Π°Ρ… Π½Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠ±ΠΎΡ€ΠΊΠΈ ΠΎΠ±Ρ€Π°Π·Π°, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ **ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½** Ρ€Π°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ ΡΠ»ΠΎΠΉ ΠΎΠ±Ρ€Π°Π·Π°, Π° Π½Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ»ΠΎΡ Ρ Π½ΡƒΠ»Ρ.
+Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ»ΠΎΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΡˆΠ°Π³Π° Π·Π°Π²ΠΈΡΠΈΡ‚ ΠΎΡ‚ ΡΠ»ΠΎΡ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ, Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π½Π΅ΡΡ‘Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΡΠ»ΠΎΠΉ, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅.
+
+ИзбСганиС ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡΡˆΠ° Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡˆΠ°Π³Π΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ **ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡΡˆ ΠΈ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠ°Π³Π°Ρ…**. ΠΠ°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡΡˆ ΠΏΡ€ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ:
+
+```Dockerfile
+RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
+```
+
+Π€Π°ΠΉΠ» ΡΠΎ ΡΠΏΠΈΡΠΊΠΎΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ **измСняСтся Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ Ρ€Π΅Π΄ΠΊΠΎ**. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΡ‚ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, Docker ΡΠΌΠΎΠΆΠ΅Ρ‚ **ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡΡˆ** Π½Π° ΡΡ‚ΠΎΠΌ ΡˆΠ°Π³Π΅.
+
+А Π·Π°Ρ‚Π΅ΠΌ **ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡΡˆ ΠΈ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡˆΠ°Π³Π΅**, Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΌ ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ.  Π˜ Π²ΠΎΡ‚ Ρ‚ΡƒΡ‚-Ρ‚ΠΎ ΠΌΡ‹ ΠΈ **сэкономим ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ**. βœ¨ ...Π° Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Ρ‚ΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² Ρ‚ягостном ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ. πŸ˜ͺπŸ˜†
+
+Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ **ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΈΠ½ΡƒΡ‚**, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ **кэша** Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ **сСкунд** ΠΌΠ°ΠΊΡΠΈΠΌΡƒΠΌ.
+
+И Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ‡Π°ΡΡ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΄Π»Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚оспособности Π²Π½Π΅ΡΡ‘Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ρ‚ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠ»Π΅Π½Π½Ρ‹Π΅ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ ΡΠ»ΠΎΠΆΠ°Ρ‚ся Π² Ρ‡Π°ΡΡ‹, Π° Ρ‚ΠΎ ΠΈ Π΄Π½ΠΈ.
+
+Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ°ΠΏΠΊΠ° Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ **измСняСтся Ρ‡Π°Ρ‰Π΅ Π²ΡΠ΅Π³ΠΎ**, Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ Π΅Ρ‘ Π² ΠΊΠΎΠ½Ρ†Π΅ `Dockerfile`, Π²Π΅Π΄ΡŒ ΠΏΠΎΡΠ»Π΅ Π²Π½Π΅ΡΡ‘Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΡΡˆ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ Π½Π° ΡΡ‚ΠΎΠΌ ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡˆΠ°Π³Π°Ρ….
+
+```Dockerfile
+COPY ./app /code/app
+```
+
+### Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Docker-ΠΎΠ±Ρ€Π°Π·
+
+Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° ΡΠ²ΠΎΠΈΡ… ΠΌΠ΅ΡΡ‚Π°Ρ…, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΠ±Ρ€Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.
+
+* ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π² Ρ‚Ρƒ, Π³Π΄Π΅ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ‹ `Dockerfile` ΠΈ ΠΏΠ°ΠΏΠΊΠ° `app` Ρ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ).
+* Π‘ΠΎΠ·Π΄Π°ΠΉ ΠΎΠ±Ρ€Π°Π· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ FastAPI:
+
+<div class="termy">
+
+```console
+$ docker build -t myimage .
+
+---> 100%
+```
+
+</div>
+
+!!! tip "Подсказка"
+    ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° -  `.`, ΡΡ‚ΠΎ Ρ‚ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ Ρ‡Ρ‚ΠΎ ΠΈ `./`, Ρ‚Π΅ΠΌ ΡΠ°ΠΌΡ‹ΠΌ ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Docker Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ±ΠΎΡ€ΠΊΡƒ ΠΎΠ±Ρ€Π°Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.
+
+    Π’ Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Π΅ ΡΡ‚ΠΎ Ρ‚Π° ΠΆΠ΅ ΡΠ°ΠΌΠ°Ρ Π΄ΠΈΡ€Π΅ΠΊΡ‚ория (`.`).
+
+### Π—апуск Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°
+
+* Π—апуститС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° Π’Π°ΡˆΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π·Π΅:
+
+<div class="termy">
+
+```console
+$ docker run -d --name mycontainer -p 80:80 myimage
+```
+
+</div>
+
+## ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°
+
+Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π’Π°Ρˆ Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Ρ ΠΏΠΎ ΡΡΡ‹Π»ΠΊΠ΅: <a href="http://192.168.99.100/items/5?q=somequery" class="external-link" target="_blank">http://192.168.99.100/items/5?q=somequery</a> ΠΈΠ»ΠΈ <a href="http://127.0.0.1/items/5?q=somequery" class="external-link" target="_blank">http://127.0.0.1/items/5?q=somequery</a> (ΠΈΠ»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π’Π°Ρˆ Docker-хост).
+
+Π’Π°ΠΌ Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅:
+
+```JSON
+{"item_id": 5, "q": "somequery"}
+```
+
+## Π˜Π½Ρ‚Срактивная Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ация API
+
+Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ ΡΡΡ‹Π»ΠΊΠ΅ <a href="http://192.168.99.100/docs" class="external-link" target="_blank">http://192.168.99.100/docs</a> ΠΈΠ»ΠΈ <a href="http://127.0.0.1/docs" class="external-link" target="_blank">http://127.0.0.1/docs</a> (ΠΈΠ»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π’Π°Ρˆ Docker-хост).
+
+Π—Π΄Π΅ΡΡŒ Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ API (ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ <a href="https://github.com/swagger-api/swagger-ui" class="external-link" target="_blank">Swagger UI</a>):
+
+![Swagger UI](https://fastapi.tiangolo.com/img/index/index-01-swagger-ui-simple.png)
+
+## ΠΠ»ΡŒΡ‚Срнативная Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ация API
+
+Π’Π°ΠΊΠΆΠ΅ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ ΡΡΡ‹Π»ΠΊΠ΅ <a href="http://192.168.99.100/redoc" class="external-link" target="_blank">http://192.168.99.100/redoc</a> or <a href="http://127.0.0.1/redoc" class="external-link" target="_blank">http://127.0.0.1/redoc</a> (ΠΈΠ»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π’Π°Ρˆ Docker-хост).
+
+Π—Π΄Π΅ΡΡŒ Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ API (ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ <a href="https://github.com/Rebilly/ReDoc" class="external-link" target="_blank">ReDoc</a>):
+
+![ReDoc](https://fastapi.tiangolo.com/img/index/index-02-redoc-simple.png)
+
+## Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Docker-ΠΎΠ±Ρ€Π°Π·Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ΄Π½ΠΎΡ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ FastAPI
+
+Если Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ FastAPI ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΎ Π² ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, `main.py` ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π’Π°ΡˆΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° ΡΡ‚Ρƒ:
+
+```
+.
+β”œβ”€β”€ Dockerfile
+β”œβ”€β”€ main.py
+└── requirements.txt
+```
+
+Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² `Dockerfile` ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ²:
+
+```{ .dockerfile .annotate hl_lines="10  13" }
+FROM python:3.9
+
+WORKDIR /code
+
+COPY ./requirements.txt /code/requirements.txt
+
+RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
+
+# (1)
+COPY ./main.py /code/
+
+# (2)
+CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "80"]
+```
+
+1. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½Π΅ΠΏΠΎΡΡ€Π΅Π΄ΡΡ‚Π²Π΅Π½Π½ΠΎ Ρ„Π°ΠΉΠ» `main.py` Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ `/code` (Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ `./app`).
+
+2. ΠŸΡ€ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ΅ Uvicorn ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π΅ΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ `app` Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° `main` (вмСсто ΠΈΠΌΠΏΠΎΡ€Ρ‚ирования ΠΈΠ· `app.main`).
+
+НастройтС Uvicorn Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ `main` Π²ΠΌΠ΅ΡΡ‚ΠΎ `app.main` Π΄Π»Ρ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° `app`.
+
+## ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Ρ€Π°Π·Π²Ρ‘ртывания
+
+Π”Π°Π²Π°ΠΉΡ‚Π΅ Π²ΡΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΎ [ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡΡ… Ρ€Π°Π·Π²Ρ‘ртывания](./concepts.md){.internal-link target=_blank} ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΈΡ… ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ.
+
+ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ - ΡΡ‚ΠΎ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΠΉ **сборку ΠΈ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅** ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Ρ‹Π°ΡŽΡ‚ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ **ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Ρ€Π°Π·Π²Ρ‘ртывания**, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ.
+
+**Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ Π½ΠΎΠ²ΠΎΡΡ‚ΡŒ** Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΠΈ, ΠΌΡ‹ Π²ΡΡ‘ Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΡŒ Π²ΡΠ΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Ρ€Π°Π·Π²Ρ‘ртывания. πŸŽ‰
+
+Рассмотрим ΡΡ‚ΠΈ **ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Ρ€Π°Π·Π²Ρ‘ртывания** ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ:
+
+* Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTPS
+* ΠΠ°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ Π·Π°ΠΏΡƒΡΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
+* ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
+* Π—апуск Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
+* Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ
+* Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΏΡƒΡΠΊΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
+
+## Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTPS
+
+Если ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌΡΡ, Ρ‡Ρ‚ΠΎ **ΠΎΠ±Ρ€Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°** Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ FastAPI, Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ HTTPS ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ **снаруТи** ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°.
+
+Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, <a href="https://traefik.io/" class="external-link" target="_blank">Traefik</a>, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Ρ **HTTPS** ΠΈ **ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ** ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‰ΠΈΠΉ **сСртификаты**.
+
+!!! tip "Подсказка"
+    Traefik ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ Ρ Docker, Kubernetes ΠΈ ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. ΠžΠ½ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΡΡ‚ Π² ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ HTTPS Π΄Π»Ρ Π’Π°ΡˆΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².
+
+Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹, Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ HTTPS ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρƒ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСт Ρ‚Π°ΠΊΡƒΡŽ ΡƒΡΠ»ΡƒΠ³Ρƒ.
+
+## ΠΠ°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ Π·Π°ΠΏΡƒΡΠΊΠ° ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
+
+ΠžΠ±Ρ‹Ρ‡Π½ΠΎ **запуском ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Ρ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ** Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ся ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚.
+
+Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡΠ°ΠΌ **Docker**, **Docker Compose**, **Kubernetes**, **ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€** ΠΈ Ρ‚.ΠΏ.
+
+Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΡΠ»ΡƒΡ‡Π°Π΅Π² ΡΡ‚ΠΎ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ Π·Π°ΠΏΡƒΡΠΊΠ° ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΠΏΡ€ΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ). ΠΠ°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π·Π°ΠΏΡƒΡΠΊΠ° Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ `--restart`.
+
+Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡƒΡΠΊΠΎΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² - Π²Π΅ΡΡŒΠΌΠ° Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. ΠΠΎ ΠΏΡ€ΠΈ **Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ** - ΡΡ‚ΠΎ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡˆΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹ΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. βœ¨
+
+## Π—апуск Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ - Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ²
+
+Если Ρƒ Π’ас Π΅ΡΡ‚ΡŒ <abbr title="НСсколько ΡΠ΅Ρ€Π²Π΅Ρ€ΠΎΠ² Π½Π°ΡΡ‚Ρ€ΠΎΠ΅Π½Π½Ρ‹Ρ… Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹.">кластСр</abbr> ΠΌΠ°ΡˆΠΈΠ½ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ **Kubernetes**, Docker Swarm Mode, Nomad ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ ΠΎΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΡΠΊΠΎΡ€Π΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π²ΠΌΠ΅ΡΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² (Ρ‚ΠΈΠΏΠ° Gunicorn ΠΈ Π΅Π³ΠΎ Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹) Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, Π’Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ **ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ** Π½Π° **ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π°**.
+
+Π’ Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ· ΡΡ‚ΠΈΡ… ΡΠΈΡΡ‚Π΅ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½ ΡΠΏΠΎΡΠΎΠ± ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ **количСством Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²** Π΄Π»Ρ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ **Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ** ΠΎΡ‚ Π²Ρ…одящих Π·Π°ΠΏΡ€ΠΎΡΠΎΠ² Π½Π° **ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π°**.
+
+Π’ Ρ‚Π°ΠΊΠΎΠΉ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΈ Π’Ρ‹, Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎ, Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ **ΠΎΠ±Ρ€Π°Π· Docker**, ΠΊΠ°ΠΊ [описано Π²Ρ‹ΡˆΠ΅](#dockerfile), Ρ ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ями ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ **ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ†Π΅ΡΡ Uvicorn** Π²ΠΌΠ΅ΡΡ‚ΠΎ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Gunicorn ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΠΌΠΈ Π²ΠΎΡ€ΠΊΠ΅Ρ€Π°ΠΌΠΈ Uvicorn.
+
+### Π‘алансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ
+
+ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ **ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚**. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΠΈΠΉ **прокси-сСрвСр Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ TLS** Π΄Π»Ρ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ **HTTPS** ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅.
+
+ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡΡ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ **ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π°ΠΏΡ€ΠΎΡΡ‹** ΠΈ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ **распрСдСляСт** ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ **балансировщиком Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ**.
+
+!!! tip "Подсказка"
+    **ΠŸΡ€ΠΎΠΊΡΠΈ-сСрвСр Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ TLS** ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ **балансировщиком Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ**.
+
+БистСма ΠΎΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄Π»Ρ Π·Π°ΠΏΡƒΡΠΊΠ° ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½Ρ‹ΠΉ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ **сСтСвого Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚вия** (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π»Ρ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ HTTP-запросов) ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Ρ Π’Π°ΡˆΠΈΠΌΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ **балансировщиком Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ** (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ **прокси-сСрвСром**).
+
+### ΠžΠ΄ΠΈΠ½ Π±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ - ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²
+
+ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ **Kubernetes** ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠ°ΠΌΠΈ ΠΎΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π½Π΅ΠΉ ΡΠ΅Ρ‚ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ **балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ**, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ **Π³Π»Π°Π²Π½Ρ‹ΠΉ** ΠΏΠΎΡ€Ρ‚ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ Π·Π°ΠΏΡ€ΠΎΡΡ‹ **мноТСству Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²** Ρ Π’Π°ΡˆΠΈΠΌΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
+
+Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ **Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ†Π΅ΡΡ** (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΡ†Π΅ΡΡ Uvicorn ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π’Π°ΡˆΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ FastAPI). ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ **ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌΠΈ**, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·Π°, Π½ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ²ΠΎΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅ΡΡ, ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ Ρ‚.ΠΏ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΏΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° **распараллСливания** Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ **Ρ€Π°Π·Π½Ρ‹ΠΌ ΡΠ΄Ρ€Π°ΠΌ** ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π° ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ **Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΌΠ°ΡˆΠΈΠ½Π°ΠΌ**.
+
+БистСма ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ Ρ **балансировщиком Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ** Π±ΡƒΠ΄Π΅Ρ‚ **Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΡΡ‹** ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ Ρ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ **ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ**. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π·Π°ΠΏΡ€ΠΎΡ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° **ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²** Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
+
+**Балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ** ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΡΡ‹ ΠΊ *Ρ€Π°Π·Π½Ρ‹ΠΌ* ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Π² Π’Π°ΡˆΠ΅ΠΌ ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΅ΡΠ»ΠΈ Ρƒ Π½ΠΈΡ… Ρ€Π°Π·Π½Ρ‹Π΅ Π΄ΠΎΠΌΠ΅Π½Ρ‹ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Ρ„иксы ΠΏΡƒΡ‚ΠΈ) ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΡΡ‹ Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ Ρ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
+
+### ΠžΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ†Π΅ΡΡ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€
+
+Π’ ΡΡ‚ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ **Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ†Π΅ΡΡ (Uvicorn)**, Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π°.
+
+Π—Π΄Π΅ΡΡŒ **Π½Π΅ Π½ΡƒΠΆΠ΅Π½** ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² Ρ‚ΠΈΠΏΠ° Gunicorn, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ°ΠΌΠΈ Uvicorn, ΠΈΠ»ΠΈ ΠΆΠ΅ Uvicorn, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ°ΠΌΠΈ Uvicorn. Π”остаточно **Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ° Uvicorn** Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ (Π½ΠΎ Π·Π°ΠΏΡƒΡΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² Π½Π΅ Π·Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½).
+
+ИспользованиС ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² (Gunicorn ΠΈΠ»ΠΈ Uvicorn) Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ‚ **излишнСС ΡƒΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠ΅**, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ ΠΎΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ.
+
+### <a name="special-cases"></a>ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π΄Π»Ρ ΠΎΡΠΎΠ±Ρ‹Ρ… ΡΠ»ΡƒΡ‡Π°Π΅Π²</a>
+
+БСзусловно, Π±Ρ‹Π²Π°ΡŽΡ‚ **особыС ΡΠ»ΡƒΡ‡Π°ΠΈ**, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ся Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ **ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² Gunicorn**, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΠΌΠΈ **процСссами Uvicorn**.
+
+Для Ρ‚Π°ΠΊΠΈΡ… ΡΠ»ΡƒΡ‡Π°Π΅Π² Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ **ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Docker-ΠΎΠ±Ρ€Π°Π·** (ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€: - *здСсь ΠΈ Π΄Π°Π»Π΅Π΅ Π½Π° ΡΡ‚ΠΎΠΉ ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅, Π΅ΡΠ»ΠΈ Π’Ρ‹ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚Π΅ ΡΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΠ΅ "ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Docker-ΠΎΠ±Ρ€Π°Π·" Π±Π΅Π· ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠΉ, Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π² Π²ΠΈΠ΄Ρƒ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚авляСмый ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·*), Π³Π΄Π΅ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся **Gunicorn**, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ **процСссов Uvicorn** ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π°Π²Ρ‚оматичСски ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° ΡΠ΄Π΅Ρ€ Π’Π°ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π°. Π― Ρ€Π°ΡΡΠΊΠ°ΠΆΡƒ Π’Π°ΠΌ ΠΎΠ± ΡΡ‚ΠΎΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ‚ΡƒΡ‚: [ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Docker-ΠΎΠ±Ρ€Π°Π· ΡΠΎ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½Ρ‹ΠΌΠΈ Gunicorn ΠΈ Uvicorn](#docker-gunicorn-uvicorn).
+
+НСкоторыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΡΠ»ΡƒΡ‡Π°Π΅Π²:
+
+#### ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
+
+Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π΅ΡΠ»ΠΈ Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ **Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡΡ‚ΠΎΠ΅**, Ρ‡Ρ‚ΠΎ Ρƒ Π’ас Π½Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…одимости (ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚) Π² Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ°Ρ… ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² ΠΈ Π’Π°ΠΌ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ся Π½Π°ΡΡ‚Ρ€ΠΎΠ΅ΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Docker-ΠΎΠ±Ρ€Π°Π·) Π΄Π»Ρ Π·Π°ΠΏΡƒΡΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ **Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅Ρ€Π²Π΅Ρ€Π΅**, Π° Π½Π΅ Π² ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π΅.
+
+#### Docker Compose
+
+Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ **Docker Compose** ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π½Π° **ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅Ρ€Π²Π΅Ρ€Π΅** (Π½Π΅ ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π΅), Π½ΠΎ ΠΏΡ€ΠΈ ΡΡ‚ΠΎ Ρƒ Π’ас Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡΡ‚ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Ρ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Ρ‰Π΅ΠΉ ΡΠ΅Ρ‚ΠΈ ΠΈ **балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ**.
+
+Π’ ΡΡ‚ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ **ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ²**, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ **нСсколькими ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ°ΠΌΠΈ**, Π²Π½ΡƒΡ‚Ρ€ΠΈ **ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°**.
+
+#### Prometheus ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹
+
+Π£ Π’ас ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈ **Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹**, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ **мноТСства ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ²** Π²Π½ΡƒΡ‚Ρ€ΠΈ **ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°** Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅, Π½Π΅ΠΆΠ΅Π»ΠΈ Π·Π°ΠΏΡƒΡΠΊ **Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²** Ρ **СдинствСнным ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠΌ** Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ….
+
+НапримСр (Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ), Ρƒ Π’ас ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΡΠΊΡΠΏΠΎΡ€Ρ‚Ρ‘Ρ€Ρƒ Prometheus, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄ΠΎΡΡ‚ΡƒΠΏ ΠΊ **ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π·Π°ΠΏΡ€ΠΎΡΡƒ** ΠΏΡ€ΠΈΡ…одящСму Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.
+
+Если Ρƒ Π’ас Π±ΡƒΠ΄Π΅Ρ‚ **нСсколько ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²**, Ρ‚ΠΎ Prometheus, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ,  **ΠΏΡ€ΠΈ ΡΠ±ΠΎΡ€Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ** ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΈΡ… **Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°**, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π·Π°ΠΏΡ€ΠΎΡ, Π²ΠΌΠ΅ΡΡ‚ΠΎ **сбора ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ** ΡΠΎ Π²ΡΠ΅Ρ… Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².
+
+Π’ Ρ‚Π°ΠΊΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ **ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€** ΡΠΎ **мноТСством ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ²**, Ρ Π½ΡƒΠΆΠ½Ρ‹ΠΌ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ (Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ΡΠΊΡΠΏΠΎΡ€Ρ‚Ρ‘Ρ€ Prometheus) Π² ΡΡ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ ΠΈ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‰Π΅ΠΌ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΡΠΎ Π²ΡΠ΅Ρ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² ΡΡ‚ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.
+
+---
+
+Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ - **Π½ΠΈ ΠΎΠ΄Π½ΠΎ** ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся **высСчСнным Π² ΠΊΠ°ΠΌΠ½Π΅** ΠΈ Π’Ρ‹ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Ρ‹ ΡΠ»Π΅ΠΏΠΎ ΠΈΡ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚ΠΈ ΠΈΠ΄Π΅ΠΈ ΠΏΡ€ΠΈ **рассмотрСнии Π’Π°ΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΡΠ»ΡƒΡ‡Π°Ρ** ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠ°Ρ ΠΈΠ· ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π»ΡƒΡ‡ΡˆΠ΅:
+
+* Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTPS
+* ΠΠ°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ Π·Π°ΠΏΡƒΡΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
+* ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
+* Π—апуск Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
+* Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ
+* Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΏΡƒΡΠΊΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
+
+## Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ
+
+ΠŸΡ€ΠΈ **запускС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€** Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚Π½Ρ‹ΠΉ, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΡ‘ΠΌ ΠΏΠ°ΠΌΡΡ‚ΠΈ, ΠΏΠΎΡ‚рСбляСмый ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ.
+
+Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΠΏΠΎ ΠΏΠ°ΠΌΡΡ‚ΠΈ ΠΏΡ€ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΡ‚Π΅ΠΌΡ‹ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, **Kubernetes**). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡΠΈΡΡ‚Π΅ΠΌΠ° ΡΠΌΠΎΠΆΠ΅Ρ‚ **ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²** Π½Π° **доступных Π΅ΠΉ ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…** ΠΏΡ€ΠΈΠ²ΠΎΠ΄Ρ Π² ΡΠΎΠΎΡ‚вСтствиС ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠ°ΠΌΡΡ‚ΠΈ Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ Ρ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠΌ ΠΏΠ°ΠΌΡΡ‚ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΠΉ Π² ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π΅ (Π½Π°Π±ΠΎΡ€Π΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½).
+
+Если Ρƒ Π’ас **ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΎΠ΅** ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎ Ρƒ Π’ас Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ **нСобходимости** ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΆΡ‘сткиС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Π½Π° Π²Ρ‹Π΄Π΅Π»ΡΠ΅ΠΌΡƒΡŽ Π΅ΠΌΡƒ ΠΏΠ°ΠΌΡΡ‚ΡŒ. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ **ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΌΡΡ‚ΠΈ** (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ **машинного ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡ**), Π’Π°ΠΌ ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΌΡΡ‚ΠΈ Π΅ΠΌΡƒ Ρ‚рСбуСтся ΠΈ ΠΎΡ‚Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ **количСство ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²** Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π½Π° **ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Π΅** (ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½ Π² ΠΊΠ»Π°ΡΡ‚Π΅Ρ€).
+
+Если Π’Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅Ρ‚Π΅ **нСсколько ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅**, Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ ΡΡ‚ΠΈ ΠΏΡ€ΠΎΡ†Π΅ΡΡΡ‹ Π½Π΅ **Π·Π°ΠΉΠΌΡƒΡ‚ ΠΏΠ°ΠΌΡΡ‚ΠΈ Π±ΠΎΠ»ΡŒΡˆΠ΅**, Ρ‡Π΅ΠΌ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎ Π΄Π»Ρ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.
+
+## ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡˆΠ°Π³ΠΈ ΠΏΡ€ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²
+
+Π•ΡΡ‚ΡŒ Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² (Docker, Kubernetes ΠΈ Ρ‚.ΠΏ.).
+
+### ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²
+
+Когда Π’Ρ‹ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅Ρ‚Π΅ **мноТСство ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²**, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ **Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ†Π΅ΡΡ** (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π΅ **Kubernetes**), ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Ρ‚ΡŒ **ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€**, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ **ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡˆΠ°Π³ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΏΡƒΡΠΊΠΎΠΌ** ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…).
+
+!!! info "Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ"
+    ΠŸΡ€ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Kubernetes, ΡΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ <a href="https://kubernetes.io/docs/concepts/workloads/pods/init-containers/" class="external-link" target="_blank">Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€</a>.
+
+ΠŸΡ€ΠΈ ΠΎΡ‚сутствии Ρ‚Π°ΠΊΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…одимости (допустим, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π³ΠΎΡ‚ΠΎΠ²Π° ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ), Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΏΡƒΡΠΊΠΎΠΌ Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ° ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π²ΡΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ **ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ**.
+
+### Π’олько ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€
+
+Если Ρƒ Π’ас Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ **ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°**, Π½ΠΎ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ **нСсколько ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ²** (ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ†Π΅ΡΡ), Ρ‚ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡˆΠ°Π³ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Π² ΡΡ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Π΄ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ°. ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Docker-ΠΎΠ±Ρ€Π°Π· ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡ‚вия.
+
+## ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Docker-ΠΎΠ±Ρ€Π°Π· Ρ Gunicorn ΠΈ Uvicorn
+
+Π― ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ» Π΄Π»Ρ Π’ас Docker-ΠΎΠ±Ρ€Π°Π·, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Gunicorn ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ°ΠΌΠΈ (Π²ΠΎΡ€ΠΊΠ΅Ρ€Π°ΠΌΠΈ) Uvicorn, Π² ΡΠΎΠΎΡ‚вСтствии Ρ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡΠΌΠΈ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π³Π»Π°Π²Π΅: [Π Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅ΡΡΡ‹ ΡΠ΅Ρ€Π²Π΅Ρ€Π° (Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρ‹) - Gunicorn ΡΠΎΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎ Ρ Uvicorn](./server-workers.md){.internal-link target=_blank}.
+
+Π­Ρ‚ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π· ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΉ ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… Ρ‚ΡƒΡ‚: [ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π΄Π»Ρ ΠΎΡΠΎΠ±Ρ‹Ρ… ΡΠ»ΡƒΡ‡Π°Π΅Π²](#special-cases).
+
+* <a href="https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker" class="external-link" target="_blank">tiangolo/uvicorn-gunicorn-fastapi</a>.
+
+!!! warning "ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅"
+    Π‘ΠΊΠΎΡ€Π΅Π΅ Π²ΡΠ΅Π³ΠΎ Ρƒ Π’ас **Π½Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…одимости** Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡ‚ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π΅ΠΌΡƒ ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π· Ρ Π½ΡƒΠ»Ρ ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Ρ‚ΡƒΡ‚: [Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ Docker-ΠΎΠ±Ρ€Π°Π· Π΄Π»Ρ FastAPI](#docker-fastapi).
+
+Π’ ΡΡ‚ΠΎΠΌ ΠΎΠ±Ρ€Π°Π·Π΅ Π΅ΡΡ‚ΡŒ **автоматичСский** ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ΄ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ Π΄Π»Ρ Π·Π°ΠΏΡƒΡΠΊΠ° **Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ²** Π² ΡΠΎΠΎΡ‚вСтствии Ρ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹ΠΌ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠΌ ΡΠ΄Π΅Ρ€ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π°.
+
+Π’ Π½Ρ‘ΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Ρ‹ **Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ**, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ **ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡ** ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².
+
+Он Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ <a href="https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker#pre_start_path" class="external-link" target="_blank">**ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡˆΠ°Π³ΠΎΠ² ΠΏΡ€ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²**</a> ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠΊΡ€ΠΈΠΏΡ‚Π°.
+
+!!! tip "Подсказка"
+    Π”ля ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π° Π²ΡΠ΅Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π½Π°ΡΡ‚Ρ€ΠΎΠ΅ΠΊ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Ρƒ ΡΡ‚ΠΎΠ³ΠΎ Docker-ΠΎΠ±Ρ€Π°Π·Π°: <a href="https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker" class="external-link" target="_blank">tiangolo/uvicorn-gunicorn-fastapi</a>.
+
+### ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Docker-ΠΎΠ±Ρ€Π°Π·Π΅
+
+**ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ²** Π² ΡΡ‚ΠΎΠΌ ΠΎΠ±Ρ€Π°Π·Π΅ **вычисляСтся Π°Π²Ρ‚оматичСски** ΠΈ Π·Π°Π²ΠΈΡΠΈΡ‚ ΠΎΡ‚ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° **ядСр** Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π°.
+
+Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ **Π²Ρ‹ΠΆΠ°Ρ‚ΡŒ** ΠΈΠ· ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π° ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠ΅ **ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ**.
+
+Но Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ **ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡ** ΠΈ Ρ‚.ΠΏ.
+
+ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² Π·Π°Π²ΠΈΡΠΈΡ‚ ΠΎΡ‚ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, **ΠΎΠ±ΡŠΡ‘ΠΌ ΠΏΠΎΡ‚рСбляСмой ΠΏΠ°ΠΌΡΡ‚ΠΈ** Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ ΡΡ‚ΠΎΠ³ΠΎ.
+
+А Π·Π½Π°Ρ‡ΠΈΡ‚, Π΅ΡΠ»ΠΈ Π’Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡ) ΠΈ Π’Π°Ρˆ ΡΠ΅Ρ€Π²Π΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ Ρ Π±ΠΎΠ»ΡŒΡˆΠΈΠΌ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎΠΌ ΡΠ΄Π΅Ρ€, Π½ΠΎ **Π½Π΅ ΡΠ»ΠΈΡˆΠΊΠΎΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠΌ ΠΎΠ±ΡŠΡ‘ΠΌΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡ‚ΠΈ**, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠΉΡ‚ΠΈ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΏΠΎΠΏΡ‹Ρ‚аСтся Π·Π°Π½ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΠΈ Π±ΠΎΠ»ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎ, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (ΠΈΠ»ΠΈ ΡΠ΅Ρ€Π²Π΅Ρ€ Π²ΠΎΠ²ΡΠ΅ ΡƒΠΏΠ°Π΄Ρ‘Ρ‚). πŸš¨
+
+
+### ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅  `Dockerfile`
+
+Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ  `Dockerfile` ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° ΡΡ‚ΠΎΠΌ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Docker-ΠΎΠ±Ρ€Π°Π·Π΅:
+
+```Dockerfile
+FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9
+
+COPY ./requirements.txt /app/requirements.txt
+
+RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt
+
+COPY ./app /app
+```
+
+### Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
+
+Если Π’Ρ‹ ΡƒΡΠΏΠ΅Π»ΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Ρ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠΌ [ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²](../tutorial/bigger-applications.md){.internal-link target=_blank}, ΡΠΎΡΡ‚оящиС ΠΈΠ· ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° Ρ„Π°ΠΉΠ»ΠΎΠ², Π’Π°Ρˆ Dockerfile ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:
+
+```Dockerfile hl_lines="7"
+FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9
+
+COPY ./requirements.txt /app/requirements.txt
+
+RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt
+
+COPY ./app /app/app
+```
+
+### ΠšΠ°ΠΊ ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ
+
+Если Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ **Kubernetes** (ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Ρ‚ΠΎΠ³ΠΎ), ΡΠΊΠΎΡ€Π΅Π΅ Π²ΡΠ΅Π³ΠΎ Π’Π°ΠΌ **Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ** ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Docker-ΠΎΠ±Ρ€Π°Π· (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ) Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΡΠ½ΠΎΠ²Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ **количСством Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²** Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΡΡ‚Ρ€ΠΎΠ΅Π½ΠΎ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π°. Π’ Ρ‚Π°ΠΊΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Π΅ Π»ΡƒΡ‡ΡˆΠ΅ **ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π· Ρ Π½ΡƒΠ»Ρ**, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ [Docker-ΠΎΠ±Ρ€Π°Π· Π΄Π»Ρ FastAPI](#docker-fastapi).
+
+ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡΠ»ΡƒΡ‡Π°ΡΡ…, ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ [ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π΄Π»Ρ ΠΎΡΠΎΠ±Ρ‹Ρ… ΡΠ»ΡƒΡ‡Π°Π΅Π²](#special-cases). ΠΠ°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΅ΡΠ»ΠΈ Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ **достаточно ΠΏΡ€ΠΎΡΡ‚ΠΎΠ΅**, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ° Π² ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π΅ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Ρ‚ΠΎ Π΅Π³ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Π˜Π»ΠΈ ΠΆΠ΅ Π’Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ **Docker Compose**, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅Ρ€Π²Π΅Ρ€Π΅ ΠΈ Ρ‚. Π΄
+
+## Π Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°
+
+ПослС ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±Ρ€Π°Π·Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π΅Π³ΠΎ Ρ€Π°Π·Π²Ρ‘ртывания.
+
+НапримСр:
+
+* Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ **Docker Compose** ΠΏΡ€ΠΈ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ΅Ρ€Π²Π΅Ρ€Π΅
+* Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ **Kubernetes** Π² ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π΅
+* Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ° Docker Swarm Π² ΠΊΠ»Π°ΡΡ‚Π΅Ρ€Π΅
+* Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Nomad
+* Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ³ΠΎ ΡΠ΅Ρ€Π²ΠΈΡΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π’Π°ΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°
+
+## Docker-ΠΎΠ±Ρ€Π°Π· ΠΈ Poetry
+
+Если Π’Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ <a href="https://python-poetry.org/" class="external-link" target="_blank">Poetry</a> Π΄Π»Ρ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ями Π’Π°ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚Π°ΠΏΠ½ΡƒΡŽ ΡΠ±ΠΎΡ€ΠΊΡƒ ΠΎΠ±Ρ€Π°Π·Π°:
+
+```{ .dockerfile .annotate }
+# (1)
+FROM python:3.9 as requirements-stage
+
+# (2)
+WORKDIR /tmp
+
+# (3)
+RUN pip install poetry
+
+# (4)
+COPY ./pyproject.toml ./poetry.lock* /tmp/
+
+# (5)
+RUN poetry export -f requirements.txt --output requirements.txt --without-hashes
+
+# (6)
+FROM python:3.9
+
+# (7)
+WORKDIR /code
+
+# (8)
+COPY --from=requirements-stage /tmp/requirements.txt /code/requirements.txt
+
+# (9)
+RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
+
+# (10)
+COPY ./app /code/app
+
+# (11)
+CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "80"]
+```
+
+1. Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡΡ‚Π°ΠΏ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΡ‹ Π΄Π°Π΄ΠΈΠΌ ΠΈΠΌΡ `requirements-stage`.
+
+2. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ `/tmp` Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.
+
+    Π’ Π½Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π½ Ρ„Π°ΠΉΠ» `requirements.txt`
+
+3. ΠΠ° ΡΡ‚ΠΎΠΌ ΡˆΠ°Π³Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ Poetry.
+
+4. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ `pyproject.toml` ΠΈ `poetry.lock` Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ `/tmp`.
+
+    ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΊΠ°ΠΊ `./poetry.lock*` (с `*` Π² ΠΊΠΎΠ½Ρ†Π΅), Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΡΠ»ΠΎΠΌΠ°Π΅Ρ‚ся, Π΅ΡΠ»ΠΈ Ρ‚Π°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ» Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΠΉΠ΄Π΅Π½.
+
+5. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» `requirements.txt`.
+
+6. Π­Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ (ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ) ΡΡ‚Π°ΠΏ ΡΠ±ΠΎΡ€ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡ‚ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.
+
+7. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ `/code` Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ.
+
+8. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» `requirements.txt` Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ `/code`.
+
+    Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» Π½Π°Ρ…одится Π² ΠΎΠ±Ρ€Π°Π·Π΅, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΡΡ‚Π°ΠΏΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΡ‹ Π΄Π°Π»ΠΈ ΠΈΠΌΡ requirements-stage, ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ `--from-requirements-stage`.
+
+9.  Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² Ρ„Π°ΠΉΠ»Π΅ `requirements.txt`.
+
+10. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ `app` Π² ΠΏΠ°ΠΏΠΊΡƒ `/code`.
+
+11. Π—апуститС `uvicorn`, ΡƒΠΊΠ°Π·Π°Π² Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ `app`, Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π² `app.main`.
+
+!!! tip "Подсказка"
+    Π•сли Ρ‚ΠΊΠ½Ρ‘Ρ‚Π΅ Π½Π° ΠΊΡ€ΡƒΠΆΠΎΠΊ Ρ ΠΏΠ»ΡŽΡΠΎΠΌ, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΡΡΠ½Π΅Π½ΠΈΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ Π² ΡΡ‚ΠΎΠΉ ΡΡ‚Ρ€ΠΎΠΊΠ΅.
+
+**Π­Ρ‚Π°ΠΏΡ‹ ΡΠ±ΠΎΡ€ΠΊΠΈ Docker-ΠΎΠ±Ρ€Π°Π·Π°** ΡΠ²Π»ΡΡŽΡ‚ся Ρ‡Π°ΡΡ‚ΡŒΡŽ `Dockerfile` ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠ°ΠΊ **Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π·Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²**. ΠžΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… ΡΡ‚Π°ΠΏΠ°Ρ….
+
+ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΡΡ‚Π°ΠΏ Π±Ρ‹Π» Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π»Ρ **установки Poetry** ΠΈ **создания Ρ„Π°ΠΉΠ»Π° `requirements.txt`**, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Π½Ρ‹ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ Π’Π°ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²Π·ΡΡ‚Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° `pyproject.toml`.
+
+На **ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΡΡ‚Π°ΠΏΠ΅** `pip` Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» `requirements.txt`.
+
+Π’ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠ±Ρ€Π°Π·Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ **Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΡ‚Π°ΠΏ ΡΠ±ΠΎΡ€ΠΊΠΈ**, ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ ΡΡ‚Π°ΠΏΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹.
+
+ΠŸΡ€ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Poetry, ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΌΡ‹ΡΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ **ΠΌΠ½ΠΎΠ³ΠΎΡΡ‚Π°ΠΏΠ½ΡƒΡŽ ΡΠ±ΠΎΡ€ΠΊΡƒ Docker-ΠΎΠ±Ρ€Π°Π·Π°**, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ Poetry ΠΈ Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ Π² ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΎΠ±Ρ€Π°Π·Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π’Π°ΠΌ **Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ** ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» `requirements.txt` Π΄Π»Ρ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉ Π’Π°ΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.
+
+А Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΡ‚Π°ΠΏΠ΅, ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡΡΡŒ ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… Ρ€Π°Π½Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ», ΡΠΎΠ·Π΄Π°Ρ‘тся ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π·
+
+### Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΊΡΠΈ-сСрвСра Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ TLS ΠΈ Poetry
+
+И ΡΠ½ΠΎΠ²Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡŽΡΡŒ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΊΡΠΈ-сСрвСр (балансировщик Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ), Ρ‚Π°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ Nginx ΠΈΠ»ΠΈ Traefik, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π·Π°ΠΏΡƒΡΠΊΠ° ΠΎΠΏΡ†ΠΈΡŽ `--proxy-headers`:
+
+```Dockerfile
+CMD ["uvicorn", "app.main:app", "--proxy-headers", "--host", "0.0.0.0", "--port", "80"]
+```
+
+## Π Π΅Π·ΡŽΠΌΠ΅
+
+ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠΈΡΡ‚Π΅ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ (Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ **Docker** ΠΈ **Kubernetes**), ΡΡ‚ановится Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡΡ‚ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²ΡΠ΅ **ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ывания**:
+
+* Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° HTTPS
+* ΠΠ°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ Π·Π°ΠΏΡƒΡΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
+* ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
+* Π—апуск Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ€ΠΎΠ² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
+* Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ
+* Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°ΠΏΡƒΡΠΊΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
+
+Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΡΠ»ΡƒΡ‡Π°Π΅Π² Π’Π°ΠΌ, Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎ, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π·, **Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Ρ Π½ΡƒΠ»Ρ** Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Docker-ΠΎΠ±Ρ€Π°Π·Π° Python.
+
+ΠŸΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΠ²ΡˆΠΈΡΡŒ ΠΎ **порядкС Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ** ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΉ Π² `Dockerfile`, Π’Ρ‹ ΡΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ **кэш Docker'Π°**, **ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² Π²Ρ€Π΅ΠΌΡ ΡΠ±ΠΎΡ€ΠΊΠΈ**, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΠ² ΡΠ²ΠΎΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΡΠΊΡƒΠΊΠΈ). πŸ˜Ž
+
+Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡΠΎΠ±Ρ‹Ρ… ΡΠ»ΡƒΡ‡Π°ΡΡ… Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· Docker Π΄Π»Ρ FastAPI. πŸ€“