The // breaks Docker's stage name parsing (conflicts with 'AS').
Use oci.reg.darano.ir as a registry mirror in /etc/docker/daemon.json
if the local proxy requires the // prefix for path routing.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
The Playwright Noble image ships Python 3.12 while the builder uses
python:3.11-slim. Copying the venv produced broken shebangs, causing
"exec /app/.venv/bin/rq: no such file or directory".
Fix: install uv in the worker stage and run uv sync natively so the
venv targets this image's Python version. Manifests copied first for
layer cache efficiency.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Replace mcr.microsoft.com/playwright:v1.62.0-noble with
oci.reg.darano.ir/mcr.microsoft.com/playwright:latest for worker builds.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
The worker needs Redis to connect and complete crawl runs. Removing
--no-deps so compose starts dependencies for one-off runs.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Update docker-otp/docker-fresh to use 'worker' service instead of
the removed 'crawler' service. Add --no-deps to one-off runs so they
don't inherit the RQ worker entrypoint.
Add worker-build target to rebuild just the Playwright-based worker,
and docker-admin-up for standalone admin-only deploys.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
Replace chromium/chromedriver apt installs with
mcr.microsoft.com/playwright:v1.62.0-noble for worker containers.
Admin service stays on python:3.11-slim since it doesn't need Chrome.
This removes the build-time patch_driver.py step since Playwright ships
with a pre-patched Chromium binary. Also split docker-compose into
separate images (seed-admin / seed-worker) with explicit build targets.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>