| ARG RELEASE |
| ARG LAUNCHPAD_BUILD_ARCH |
| LABEL org.opencontainers.image.ref.name=ubuntu |
| LABEL org.opencontainers.image.version=24.04 |
| ADD file:a3272496fda5a8d021b94dccaa6baa685ded51e9d23edb05f0b30978a83c9fc2 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 |
| 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 PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1 PYBR_HOST=0.0.0.0 PYBR_PORT=8766 PYBR_PROFILE_ROOT=/data/profiles UV_LINK_MODE=copy UV_COMPILE_BYTECODE=1 UV_PYTHON_DOWNLOADS=never UV_PROJECT_ENVIRONMENT=/opt/venv PATH=/opt/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
| USER root |
| RUN /bin/sh -c apt-get update && apt-get install -y --no-install-recommends libzbar0 curl && rm -rf /var/lib/apt/lists/* # buildkit |
| COPY /uv /usr/local/bin/uv # buildkit |
| WORKDIR /app |
| COPY pyproject.toml uv.lock* README.md ./ # buildkit |
| RUN /bin/sh -c uv sync --frozen --no-install-project --no-dev || uv sync --no-install-project --no-dev # buildkit |
| COPY src/ src/ # buildkit |
| COPY deploy/gunicorn.conf.py deploy/gunicorn.conf.py # buildkit |
| RUN /bin/sh -c uv sync --frozen --no-dev || uv sync --no-dev # buildkit |
| RUN /bin/sh -c patchright install chromium --with-deps # buildkit |
| RUN /bin/sh -c mkdir -p /data/profiles && chown -R pwuser:pwuser /data /app /opt/venv /ms-playwright # buildkit |
| USER pwuser |
| EXPOSE map[8766/tcp:{}] |
| HEALTHCHECK &{["CMD-SHELL" "curl -fsS \"http://localhost:${PYBR_PORT}/healthz\" || exit 1"] "30s" "5s" "30s" "0s" '\x03'} |
| CMD ["gunicorn" "-c" "deploy/gunicorn.conf.py" "python_mcp_browser.wsgi:app"] |