Major changes: - Add Go backend (backend/) with microservices architecture - Enhanced master-agents-svc: reranker, content-classifier, stealth-crawler, proxy-manager, media-search, fastClassifier, language detection - New web-svc widgets: KnowledgeCard, ProductCard, ProfileCard, VideoCard, UnifiedCard, CardGallery, InlineImageGallery, SourcesPanel, RelatedQuestions - Improved discover-svc with discover-db integration - Docker deployment improvements (Caddyfile, vendor.sh, BUILD.md) - Library-svc: project_id schema migration - Remove deprecated finance-svc and travel-svc - Localization improvements across services Made-with: Cursor
35 lines
2.9 KiB
Markdown
35 lines
2.9 KiB
Markdown
# Сборка Docker (GooSeek)
|
||
|
||
## Почему в логе «дубли» и много строк подряд
|
||
|
||
**Это не дубли.** Собираются **15+ образов параллельно** (cache-worker, chat-svc, api-gateway, web-svc, search-svc, localization-svc, travel-svc, caddy, auth-svc, library-svc, master-agents-svc, projects-svc, llm-svc, discover-svc, geo-device-svc и др.). У каждого свой шаг `RUN npm install`, и вывод в терминале **перемешан** — поэтому кажется, что одна и та же строка повторяется. На самом деле это разные сервисы.
|
||
|
||
## Ресурсы: хватает ли?
|
||
|
||
- **Ошибка в логе** — `ECONNRESET` при `npm install`: «Client network socket disconnected before secure TLS connection was established». Это **сетевой сбой** (или лимиты при большом числе одновременных запросов к registry), а не нехватка RAM/CPU.
|
||
- То есть **ресурсов машины обычно хватает**; проблема в том, что при параллельной сборке много образов одновременно качают пакеты с registry.npmjs.org, и часть соединений обрывается.
|
||
|
||
## Что сделано для устойчивости
|
||
|
||
Во всех сервисных Dockerfile добавлено:
|
||
|
||
1. **Кэш npm** — `RUN --mount=type=cache,target=/root/.npm ... npm install`. Повторные сборки меньше ходят в сеть.
|
||
2. **Повторы при сбоях** — `--fetch-retries=5 --fetch-retry-mintimeout=20000 --fetch-retry-maxtimeout=120000`. При обрыве соединения npm повторяет запрос.
|
||
|
||
Так сборка становится устойчивее к нестабильной сети и к параллельной нагрузке на registry.
|
||
|
||
## Если сборка всё равно падает по сети
|
||
|
||
1. **Повторить** — часто помогает второй запуск `./run.sh`.
|
||
2. **Собрать по одному сервису** (из каталога `deploy/docker`):
|
||
```bash
|
||
docker compose -f docker-compose.yml --env-file ../../.env build localization-svc
|
||
docker compose -f docker-compose.yml --env-file ../../.env build chat-svc
|
||
# … и т.д.
|
||
```
|
||
3. **Проверить сеть** — VPN, прокси, нестабильный Wi‑Fi могут вызывать ECONNRESET.
|
||
|
||
## Долго билдится
|
||
|
||
Сборка 15+ Node-образов с полным `npm install` в каждом — тяжёлая операция (сотни секунд). Это нормально. С кэшем npm повторные сборки после небольших изменений будут быстрее.
|