FROM mcr.microsoft.com/playwright/python:v1.52.0-jammy WORKDIR /app ENV PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 ARG PIP_INDEX_URL=https://mirrors.cloud.tencent.com/pypi/simple ARG PIP_TRUSTED_HOST=mirrors.cloud.tencent.com ARG PIP_REGION=auto COPY requirements.txt /app/requirements.txt RUN set -e; \ region="${PIP_REGION}"; \ if [ "${region}" = "auto" ]; then \ region=$(python - <<'PY' import urllib.request urls = [ "https://ipapi.co/country/", "https://ifconfig.co/country-iso", ] for u in urls: try: with urllib.request.urlopen(u, timeout=3) as r: v = r.read().decode("utf-8", errors="ignore").strip().upper() if v: print(v) raise SystemExit(0) except Exception: pass print("UNKNOWN") PY ); \ fi; \ echo "[build] PIP region=${region}"; \ if [ "${region}" = "CN" ]; then \ pip install --no-cache-dir --retries 5 --timeout 120 \ -i "${PIP_INDEX_URL}" --trusted-host "${PIP_TRUSTED_HOST}" \ -r /app/requirements.txt \ || pip install --no-cache-dir --retries 5 --timeout 120 -r /app/requirements.txt; \ else \ pip install --no-cache-dir --retries 5 --timeout 120 -r /app/requirements.txt; \ fi COPY app /app/app EXPOSE 8317 CMD ["sh", "-c", "python /app/app/bootstrap_lingma.py && uvicorn app.main:app --host ${HOST:-0.0.0.0} --port ${PORT:-8317}"]