diff --git a/Makefile b/Makefile index 8f1e61d..64cc486 100644 --- a/Makefile +++ b/Makefile @@ -85,10 +85,13 @@ batch: ## Run many parallel runners (WORKERS=3 RUNS=10 STAGGER=500) # ── Docker ──────────────────────────────────────────────────────────────────── -build: ## Build the Docker image +build: ## Build all Docker images (admin + worker) docker compose build -up: ## Start admin panel in Docker (detached) +worker-build: ## Rebuild worker with Playwright base image + docker compose build worker + +up: ## Start all services in Docker (detached) docker compose up -d @echo "$(GREEN)Admin panel:$(RESET) http://localhost:8000" @@ -101,16 +104,21 @@ logs: ## Follow container logs shell: ## Open a shell in the running admin container docker compose exec admin bash -# Crawler one-shots inside Docker +# Worker one-off commands (override the default RQ worker command) +docker-worker: ## Start RQ worker interactively (for debugging) + docker compose run --rm --no-deps worker docker-otp: ## Run OTP scenario in Docker (PHONE=+98...) ifdef PHONE - docker compose run --rm crawler python main.py otp --phone $(PHONE) + docker compose run --rm --no-deps -e PHONE=$(PHONE) worker python main.py otp --phone $(PHONE) else - docker compose run --rm crawler python main.py otp + docker compose run --rm --no-deps worker python main.py otp endif docker-fresh: ## Run fresh-session scenario in Docker - docker compose run --rm crawler python main.py fresh + docker compose run --rm --no-deps worker python main.py fresh + +docker-admin-up: ## Start only the admin panel in Docker (detached) + docker compose up -d admin # ── Housekeeping ──────────────────────────────────────────────────────────────