The install script doesn't modify PATH for the shell. Call uv via
full path (/root/.local/bin/uv) in the same RUN so there's no
layer boundary issue.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
The Playwright Noble image ships Python but not pip or uv in PATH.
Install uv directly via curl, then run uv sync natively so the venv
targets this image's Python 3.12 instead of copying a broken 3.11 venv.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
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>