This commit is contained in:
chase
2026-05-04 12:16:42 +03:00
parent 98330f11f7
commit c1c554c8c5
8 changed files with 359 additions and 37 deletions
@@ -14,11 +14,11 @@
| Путь | Содержимое |
| ------------------------------------------- | ---------------------------------------- |
| `examples/multi-service/docke-compose.yaml` | Описание всех сервисов, сетей, томов |
| `examples/multi-service/.env.example` | Пример переменных окружения для Compose |
| `examples/multi-service/web/` | Nginx + статика через `COPY` |
| `examples/multi-service/api/` | Flask + Postgres + загрузка файлов в том |
| `examples/multi-service/proxy/` | Входной nginx: `/` → web, `/api/` → api |
| `docker/examples/multi-service/compose.yaml` | Описание всех сервисов, сетей, томов |
| `docker/examples/multi-service/.env.example` | Пример переменных окружения для Compose |
| `docker/examples/multi-service/web/` | Nginx + статика через `COPY` |
| `docker/examples/multi-service/api/` | Flask + Postgres + загрузка файлов в том |
| `docker/examples/multi-service/proxy/` | Входной nginx: `/` → web, `/api/` → api |
Скопируйте переменные окружения:
@@ -27,44 +27,26 @@ cd docker/examples/multi-service
cp .env.example .env
```
<img src="./assets/image_1777885724388.jpg" width="auto">
Запуск:
```
docker compose up -d --build
```
**Скриншот:** вывод `docker compose up` — этапы build, Creating..., Started.
<img src="./assets/image_1777885746375.jpg" width="auto">
<img src="./assets/compose_up_build_started.png" width="auto">
<img src="./assets/image_1777885786226.jpg" width="auto">
**Скриншот:** `docker compose ps` — все сервисы `running` (или `healthy` где настроено).
<img src="./assets/image_1777885816731.jpg" width="auto">
<img src="./assets/compose_ps_all_running.png" width="auto">
Все сервисы подняты
Откройте в браузере `http://127.0.0.1:8080` (если в `.env` не меняли `HTTP_PORT`).
Откройте в браузере адрес с портом из `.env` (по умолчанию `http://127.0.0.1:8080`). Главная страница — статика из сервиса **web**: мини-дашборд с индикаторами **прокси**, **web**, **API** и **PostgreSQL** (данные приходят с эндпоинта `/api/status` через прокси), блок **заметок** (чтение и создание через `/api/notes`) и простая загрузка файлов в том **api_uploads**. Всё работает в одной вкладке, без `curl` — гайд остаётся про Docker и Compose, а проверка стека — через интерфейс.
**Скриншот:** главная страница демо со ссылками на API.
**Скриншот:** открытая главная страница с зелёными статусами и списком заметок.
<img src="./assets/compose_browser_home.png" width="auto">
Проверка API через прокси:
```
curl -s http://127.0.0.1:8080/api/health | jq .
curl -s http://127.0.0.1:8080/api/notes | jq .
curl -s -X POST http://127.0.0.1:8080/api/notes \
-H 'Content-Type: application/json' \
-d '{"body":"Первая заметка из curl"}' | jq .
echo demo > /tmp/upload-demo.txt
curl -s -F "file=@/tmp/upload-demo.txt" http://127.0.0.1:8080/api/upload | jq .
curl -s http://127.0.0.1:8080/api/uploads | jq .
```
**Скриншот:** терминал с ответами JSON.
<img src="./assets/compose_curl_api_notes.png" width="auto">
<img src="./assets/image_1777885916959.jpg" width="auto">
---
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB