You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### Added
- Changes in README.md
- Changes in containers/browser-service/Dockerfile
- Changes in containers/browser-service/requirements.txt
- Changes in containers/browser-service/scripts/form-fill.py
- Changes in containers/browser-service/supervisord.conf
- Changes in containers/llm-orchestrator/.dockerignore
- Changes in containers/llm-orchestrator/Dockerfile
- Changes in containers/llm-orchestrator/api.py
- Changes in containers/novnc/Dockerfile
- Changes in containers/test-runner/Dockerfile
- Changes in containers/video-chat/Dockerfile
- Changes in containers/voice-interface/Dockerfile
- Changes in containers/voice-interface/app.py
- Changes in containers/web-interface/Dockerfile
- Changes in containers/web-terminal/Dockerfile
- Changes in containers/web-voice-api/Dockerfile
- Changes in containers/web-voice-api/app.py
- Changes in dev.sh
- Changes in docker-compose.browser-service.yml
- Changes in docker-compose.llm-orchestrator.yml
- Changes in docker-compose.novnc.yml
- Changes in docker-compose.video-chat.yml
- Changes in docker-compose.web-interface.yml
- Changes in docker-compose.web-terminal.yml
- Changes in infra/ansible/playbook.yml
- Changes in pyproject.toml
- Changes in setup.py
Copy file name to clipboardExpand all lines: README.md
+128Lines changed: 128 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,6 +35,134 @@ Pierwsze uruchomienie automatycznie skonfiguruje środowisko (venv, zależności
35
35
36
36
> **WAŻNE:** Projekt wymaga Docker Compose v2 (polecenie `docker compose`). Skrypt `install.sh` instaluje go automatycznie jako plugin CLI.
37
37
38
+
## Cache pip w Docker
39
+
40
+
Wszystkie kontenery pythonowe korzystają z cache pip zamontowanego jako volume:
41
+
42
+
```yaml
43
+
volumes:
44
+
- ~/.cache/pip:/root/.cache/pip
45
+
```
46
+
47
+
Dzięki temu, podczas budowania obrazu, pip używa lokalnego cache i nie pobiera ponownie tych samych pakietów z internetu, co znacząco przyspiesza development oraz CI/CD.
48
+
49
+
> **Uwaga:** Flaga `--no-cache-dir` NIE jest używana w poleceniach pip w Dockerfile – cache jest zawsze wykorzystywany.
50
+
51
+
**Czyszczenie cache pip lokalnie:**
52
+
53
+
Jeśli chcesz wyczyścić lokalny cache pip (np. w przypadku problemów z zależnościami lub braku miejsca na dysku):
54
+
55
+
```bash
56
+
rm -rf ~/.cache/pip
57
+
```
58
+
59
+
Cache zostanie odbudowany automatycznie przy następnym budowaniu obrazu.
Każdy katalog z Dockerfile powinien zawierać plik `.dockerignore`, który określa, jakie pliki i katalogi nie powinny być kopiowane do kontekstu budowy obrazu.
64
+
65
+
Przykładowa zawartość `.dockerignore`:
66
+
```
67
+
.git
68
+
__pycache__
69
+
*.pyc
70
+
*.pyo
71
+
*.pyd
72
+
*.db
73
+
*.sqlite3
74
+
*.log
75
+
*.md
76
+
tests/
77
+
test-examples/
78
+
data/
79
+
model-configs/
80
+
node_modules/
81
+
.env
82
+
*.egg-info
83
+
```
84
+
85
+
**Dlaczego to ważne?**
86
+
- Szybszy build (Docker nie kopiuje niepotrzebnych plików)
87
+
- Mniejszy rozmiar obrazu
88
+
- Efektywniejsze cache warstw
89
+
90
+
**Instrukcja:**
91
+
- Jeśli dodajesz nowy katalog z Dockerfile, skopiuj powyższy `.dockerignore` lub dostosuj go do swoich potrzeb.
92
+
- Możesz edytować istniejący `.dockerignore`, aby ignorować dodatkowe pliki specyficzne dla danego serwisu.
93
+
94
+
## Testowanie poprawności plików deklaratywnych
95
+
96
+
W repozytorium znajduje się skrypt:
97
+
98
+
```bash
99
+
./test-declarative.sh
100
+
```
101
+
102
+
Sprawdza on poprawność wszystkich plików YAML/YML, Dockerfile (lint/hadolint) oraz JSON w projekcie. Zalecane uruchamianie przed commitem większych zmian w konfiguracji.
103
+
104
+
## Testowanie usług i E2E
105
+
106
+
### Testowanie pojedynczych serwisów Docker
107
+
108
+
Każdy serwis możesz przetestować osobno w izolowanym środowisku:
109
+
110
+
```bash
111
+
bash containers/test-service.sh <nazwa-serwisu>
112
+
```
113
+
Np. dla llm-orchestrator:
114
+
```bash
115
+
bash containers/test-service.sh llm-orchestrator
116
+
```
117
+
118
+
Wymagane są pliki `docker-compose.<service>.yml` (generowane automatycznie dla głównych usług). Skrypt:
119
+
- Buduje i uruchamia środowisko tylko dla wybranego serwisu
120
+
- Sprawdza, czy kontener działa
121
+
- (Opcjonalnie) wykonuje healthcheck HTTP
122
+
- Wyświetla logi i zatrzymuje środowisko
123
+
124
+
### Automatyczne testy wszystkich usług
125
+
126
+
Aby przetestować wszystkie główne serwisy po kolei (z Ansible healthcheck):
127
+
128
+
```bash
129
+
bash dev.sh
130
+
```
131
+
132
+
Skrypt:
133
+
- Uruchamia test-service.sh dla każdego serwisu
134
+
- Po każdym teście uruchamia testy E2E Ansible dla danego endpointu
135
+
- Zatrzymuje środowisko po każdym teście
136
+
137
+
### Testy E2E Ansible
138
+
139
+
W katalogu `infra/ansible/` znajduje się playbook `playbook.yml`, który sprawdza healthchecki HTTP kluczowych usług. Możesz uruchomić go ręcznie:
- Skrypt `dev.sh` testuje cały zestaw usług po kolei i uruchamia testy Ansible
165
+
38
166
## Instalacja środowiska (Python 3.11+ / 3.12 na Ubuntu 24.10+)
39
167
40
168
Aby uniknąć problemów z kompatybilnością (np. PyAudio vs Python 3.12), zalecane jest użycie Pythona 3.11. **Na Ubuntu 24.10+ dostępny jest tylko Python 3.12 – patrz uwaga poniżej!**
0 commit comments