pip install uv tries to fetch from PyPI which is unreachable from
our VPS. Using curl installer directly avoids any PyPI dependency.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
The install script places uv in /usr/local/bin/uv but doesn't modify
the shell's PATH for subsequent RUN layers. Moving uv sync into the
same RUN so the freshly installed binary is immediately usable.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
The Playwright image ships Ubuntu 24.04 + Chromium but no Python.
This commit adds:
- Ubuntu apt mirror (tuna) since ubuntu.com repos are blocked from Iran
- python3 + python3-venv via apt
- uv via curl installer
- uv sync for project deps (targets Python 3.12)
Admin stage stays on python:3.11-slim (no Chrome needed).
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
- Worker stage: oci.reg.darano.ir//mcr.microsoft.com/playwright:v1.62.0-noble
(Ubuntu 24.04 + Chromium + Python 3.12 + ffmpeg/xvfb pre-installed)
No apt/pip/Python bootstrap needed — everything ships with the image.
Only uv sync needed for project deps.
- Admin stage: stays on python:3.11-slim (no Chrome needed).
Uses Debian mirror (mirrors.tuna.tsinghua.edu.cn) since deb.debian.org
times out from our VPS location (Iran).
- No more apt-get install of chromium/pip/uv in the Dockerfile.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
The mcr.microsoft.com/playwright images are language-agnostic Ubuntu
images with only Chromium/Chrome/Firefox, no Python runtime. Reverting
to python:3.11-slim for both admin and worker stages.
Worker now installs Chromium via apt, patches ChromeDriver at build
time, and uses the shared builder stage for dependency caching.
This eliminates the broken venv, missing pip/uv, and registry mirror
issues from previous iterations.
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
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>
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>