| ARG RELEASE |
| ARG LAUNCHPAD_BUILD_ARCH |
| LABEL org.opencontainers.image.version=24.04 |
| ADD file:8c609c85109d07bf47cf268a175b3be8bbe34fc0c41d15d99b090d099f4dc837 in / |
| CMD ["/bin/bash"] |
| ARG DEBIAN_FRONTEND=noninteractive |
| ARG TZ=America/Los_Angeles |
| ARG DOCKER_IMAGE_NAME_TEMPLATE=mcr.microsoft.com/playwright/python:v%version%-noble |
| ENV LANG=C.UTF-8 |
| ENV LC_ALL=C.UTF-8 |
| RUN |3 DEBIAN_FRONTEND=noninteractive TZ=America/Los_Angeles DOCKER_IMAGE_NAME_TEMPLATE=mcr.microsoft.com/playwright/python:v%version%-noble /bin/sh -c apt-get update && apt-get install -y python3 curl && rm /usr/lib/python3.12/EXTERNALLY-MANAGED && update-alternatives --install /usr/bin/python python /usr/bin/python3 1 && curl -sSL https://bootstrap.pypa.io/get-pip.py -o get-pip.py && python get-pip.py && rm get-pip.py && apt-get install -y --no-install-recommends git openssh-client gpg && rm -rf /var/lib/apt/lists/* && adduser pwuser # buildkit |
| ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright |
| COPY ./dist/*-manylinux*.whl /tmp/ # buildkit |
| RUN |3 DEBIAN_FRONTEND=noninteractive TZ=America/Los_Angeles DOCKER_IMAGE_NAME_TEMPLATE=mcr.microsoft.com/playwright/python:v%version%-noble /bin/sh -c mkdir /ms-playwright && mkdir /ms-playwright-agent && cd /ms-playwright-agent && pip install virtualenv && virtualenv venv && . venv/bin/activate && if [ "$(uname -m)" = "x86_64" ]; then pip install /tmp/*manylinux1_x86_64*.whl; fi && if [ "$(uname -m)" = "aarch64" ]; then pip install /tmp/*manylinux_2_17_aarch64*.whl; fi && playwright mark-docker-image "${DOCKER_IMAGE_NAME_TEMPLATE}" && playwright install --with-deps && rm -rf /var/lib/apt/lists/* && rm /tmp/*.whl && rm -rf /ms-playwright-agent && chmod -R 777 /ms-playwright # buildkit |
| ENV PYTHONUNBUFFERED=1 PIP_NO_CACHE_DIR=1 ROUTING_STATE=/state/routing.json |
| WORKDIR /app |
| COPY requirements.txt . # buildkit |
| RUN /bin/sh -c pip install --break-system-packages -r requirements.txt # buildkit |
| RUN /bin/sh -c patchright install chromium # buildkit |
| COPY server.py fingerprints.py human.py metrics.py routing.py entrypoint.sh ./ # buildkit |
| RUN /bin/sh -c chmod +x entrypoint.sh && chown -R pwuser:pwuser /app && mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix && mkdir -p /state && chown pwuser:pwuser /state && chown -R pwuser:pwuser "$(python3 -c 'import playwright_captcha, os; print(os.path.dirname(playwright_captcha.__file__))')" # buildkit |
| USER pwuser |
| RUN /bin/sh -c python -m camoufox fetch # buildkit |
| EXPOSE [3000/tcp] |
| HEALTHCHECK {Test:[CMD-SHELL python -c "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:3000/health',timeout=4).status==200 else 1)"] Interval:30s Timeout:5s StartPeriod:1m0s StartInterval:0s Retries:0} |
| CMD ["./entrypoint.sh"] |