| ARG RELEASE |
| ARG LAUNCHPAD_BUILD_ARCH |
| LABEL org.opencontainers.image.version=24.04 |
| ADD file:46ac5b8ee4c64ad9ebe840abd5619f571a617ac19483764d47d0eeba7907934f 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 PIP_BREAK_SYSTEM_PACKAGES=1 OUTPUT_DIR=/mnt/output |
| RUN /bin/sh -c apt-get update && apt-get install -y --no-install-recommends git curl ca-certificates && rm -rf /var/lib/apt/lists/* # buildkit |
| WORKDIR /app |
| COPY pyproject.toml ./ # buildkit |
| COPY playtest_server ./playtest_server # buildkit |
| RUN /bin/sh -c pip install --no-cache-dir ".[browser]" && python -c "import playwright, PIL, fastapi; print('playtest deps OK')" && python -c "import os, pathlib; p = pathlib.Path(os.environ['PLAYWRIGHT_BROWSERS_PATH']); found = sorted(d.name for d in p.iterdir() if d.name.startswith('chromium')); assert found, f'no chromium under {p}'; print('browsers:', found)" # buildkit |
| EXPOSE [8093/tcp] |
| HEALTHCHECK {Test:[CMD-SHELL curl -fsS http://localhost:8093/health || exit 1] Interval:30s Timeout:20s StartPeriod:30s StartInterval:0s Retries:5} |
| CMD ["uvicorn" "playtest_server.server:app" "--host" "0.0.0.0" "--port" "8093"] |