FROM git.xiaoxiajianji.com/xiaoxia/base/python:3.12-slim ENV PIP_DISABLE_PIP_VERSION_CHECK=1 \ PIP_NO_CACHE_DIR=0 \ PIP_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/ \ PIP_TRUSTED_HOST=mirrors.aliyun.com \ VIRTUAL_ENV=/opt/xiaoxia-ci-venv \ PATH=/opt/xiaoxia-ci-venv/bin:$PATH WORKDIR /workspace # Change Debian mirrors to Aliyun for faster download RUN sed -i 's|deb.debian.org|mirrors.aliyun.com|g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || true # System deps + Docker CLI RUN apt-get update \ && apt-get install -y --no-install-recommends \ curl \ git \ libpq-dev \ nodejs \ npm \ ca-certificates \ gnupg \ && install -m 0755 -d /etc/apt/keyrings \ && curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg -o /etc/apt/keyrings/docker.asc \ && chmod a+r /etc/apt/keyrings/docker.asc \ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.aliyun.com/docker-ce/linux/debian $(. /etc/os-release && echo $VERSION_CODENAME) stable" > /etc/apt/sources.list.d/docker.list \ && apt-get update \ && apt-get install -y --no-install-recommends docker-ce-cli docker-buildx-plugin \ && rm -rf /var/lib/apt/lists/* # Pre-install base deps (layer cache) COPY requirements-base.txt ./ RUN python -m venv "$VIRTUAL_ENV" \ && python -m pip install --retries 10 --timeout 120 -r requirements-base.txt # Install dev/CI deps COPY requirements-dev.txt ./ RUN python -m pip install --retries 10 --timeout 120 -r requirements-dev.txt \ && python -m black --version \ && python -m isort --version-number \ && ruff --version \ && bandit --version \ && pytest --version # Verify npm and docker work RUN npm --version && docker --version