test: pytest --no-header env: cp .env.example .env up: GIT_COMMIT=$$(git rev-parse --short HEAD) docker compose up --build -d --force-recreate docker compose logs -f migrate: docker exec -it tgex-backend-backend-1 .venv/bin/alembic upgrade head down: docker compose down clean: @docker rm -f $$(docker ps -aq) 2>/dev/null || true @docker rmi -f $$(docker images --filter "dangling=true" -q) 2>/dev/null || true @docker images --format "{{.Repository}}:{{.Tag}}" | grep -E "^(crm|local)" | xargs -r docker rmi -f 2>/dev/null || true @docker volume rm $$(docker volume ls -q) 2>/dev/null || true @docker network rm $$(docker network ls -q | grep -vE 'bridge|host|none') 2>/dev/null || true @docker system prune --volumes -f @echo "${GREEN}Docker очистка завершена. Базовые образы из registry сохранены.${NC}"