Безопасность: dev-БД и загрузки не попадают в Docker-образ
Шаблоны .dockerignore отсчитываются от корня контекста: `data/` ловил только корневую папку, `backend/*.db` — только файлы прямо в backend/. Dockerfile копирует backend/ целиком, и в каждый прод-образ уходили backend/data/dev/ (dev-БД с хешами паролей и аудитом, uploads) и egg-info от pip install -e. Теперь исключены backend/data/, любые *.db/-wal/-shm, *.egg-info, .env в любой папке и backups/ (копии прод-БД не уходят и в контекст сборки). README больше не говорит о дыре. #71 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LqSoRj99iwVEH5U5fnZgsd
This commit is contained in:
+14
-5
@@ -1,13 +1,23 @@
|
|||||||
|
# Шаблоны отсчитываются от корня контекста: без «**/» правило ловит только корень
|
||||||
|
# (так `data/` пропускал backend/data/dev/ с dev-БД и загрузками в образ, #71).
|
||||||
|
|
||||||
# Python
|
# Python
|
||||||
**/__pycache__/
|
**/__pycache__/
|
||||||
**/*.pyc
|
**/*.pyc
|
||||||
|
**/*.egg-info/
|
||||||
backend/.venv/
|
backend/.venv/
|
||||||
backend/.pytest_cache/
|
backend/.pytest_cache/
|
||||||
backend/*.db
|
|
||||||
backend/*.db-wal
|
|
||||||
backend/*.db-shm
|
|
||||||
backend/openapi.json
|
backend/openapi.json
|
||||||
|
|
||||||
|
# Данные: dev-БД, загрузки и ачивки дева (backend/data/dev/), любые файлы SQLite и
|
||||||
|
# локальные копии бэкапов — ни в образ, ни в контекст сборки
|
||||||
|
backend/data/
|
||||||
|
data/
|
||||||
|
backups/
|
||||||
|
**/*.db
|
||||||
|
**/*.db-wal
|
||||||
|
**/*.db-shm
|
||||||
|
|
||||||
# Node / сборка фронта
|
# Node / сборка фронта
|
||||||
frontend/node_modules/
|
frontend/node_modules/
|
||||||
frontend/dist/
|
frontend/dist/
|
||||||
@@ -23,8 +33,7 @@ backend/tests/
|
|||||||
backend/pyproject.toml
|
backend/pyproject.toml
|
||||||
|
|
||||||
# Прочее
|
# Прочее
|
||||||
.env
|
**/.env
|
||||||
data/
|
|
||||||
**/.DS_Store
|
**/.DS_Store
|
||||||
*.md
|
*.md
|
||||||
.claude/
|
.claude/
|
||||||
|
|||||||
@@ -200,9 +200,8 @@ docker compose up -d # pull_policy: always — тянет свежие
|
|||||||
(`backend/data/dev/`), prod → `PROD_DATABASE_URL` (том `/data`). Так же раздельно лежат
|
(`backend/data/dev/`), prod → `PROD_DATABASE_URL` (том `/data`). Так же раздельно лежат
|
||||||
загрузки (`*_UPLOAD_DIR`) и ачивки (`*_ACHIEVEMENTS_DIR`).
|
загрузки (`*_UPLOAD_DIR`) и ачивки (`*_ACHIEVEMENTS_DIR`).
|
||||||
- **В Docker идёт только прод-код:** dev-вход (stub), dev-удаление аккаунтов и тесты физически
|
- **В Docker идёт только прод-код:** dev-вход (stub), dev-удаление аккаунтов и тесты физически
|
||||||
исключены из образа (`.dockerignore`).
|
исключены из образа (`.dockerignore`). Данные дева (`backend/data/`), любые файлы SQLite
|
||||||
- **Внимание:** данные дева (`backend/data/dev/`) сейчас **попадают** в образ — правило
|
и локальные бэкапы (`backups/`) в образ тоже не попадают.
|
||||||
`data/` в `.dockerignore` исключает только корневую папку `data/` (задача #71).
|
|
||||||
|
|
||||||
## Git и деплой
|
## Git и деплой
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user