| ARG RELEASE |
| ARG LAUNCHPAD_BUILD_ARCH |
| LABEL org.opencontainers.image.version=22.04 |
| ADD file:c5143b228eb55f19ed4d3b653ad68ec7afe54ded0247e090ce3afb9e5484adfb in / |
| CMD ["/bin/bash"] |
| ARG DEBIAN_FRONTEND=noninteractive |
| ARG TZ=America/Los_Angeles |
| ARG DOCKER_IMAGE_NAME_TEMPLATE=mcr.microsoft.com/playwright:v%version%-jammy |
| ARG NODE_VERSION=24 # autogenerated via ./update-playwright-node.mjs |
| ARG UBUNTU_MIRROR_PREFIX=azure. |
| ENV LANG=C.UTF-8 |
| ENV LC_ALL=C.UTF-8 |
| RUN |9 DEBIAN_FRONTEND=noninteractive TZ=America/Los_Angeles DOCKER_IMAGE_NAME_TEMPLATE=mcr.microsoft.com/playwright:v%version%-jammy NODE_VERSION=24 #= autogenerated= via= ./update-playwright-node.mjs= UBUNTU_MIRROR_PREFIX=azure. /bin/sh -c find /etc/apt -type f \( -name '*.list' -o -name '*.sources' \) -exec sed -i "s|http://archive.ubuntu.com|http://${UBUNTU_MIRROR_PREFIX}archive.ubuntu.com|g; s|http://ports.ubuntu.com|http://${UBUNTU_MIRROR_PREFIX}ports.ubuntu.com|g" {} + && apt-get update && apt-get install -y curl wget gpg ca-certificates && mkdir -p /etc/apt/keyrings && curl -sL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_${NODE_VERSION}.x nodistro main" >> /etc/apt/sources.list.d/nodesource.list && apt-get update && apt-get install -y nodejs && apt-get install -y --no-install-recommends git openssh-client && npm install -g yarn && rm -rf /var/lib/apt/lists/* && adduser pwuser # buildkit |
| ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright |
| COPY ./playwright-core.tar.gz /tmp/playwright-core.tar.gz # buildkit |
| RUN |9 DEBIAN_FRONTEND=noninteractive TZ=America/Los_Angeles DOCKER_IMAGE_NAME_TEMPLATE=mcr.microsoft.com/playwright:v%version%-jammy NODE_VERSION=24 #= autogenerated= via= ./update-playwright-node.mjs= UBUNTU_MIRROR_PREFIX=azure. /bin/sh -c install -d -m 777 /ms-playwright /ms-playwright/.links && mkdir /ms-playwright-agent && cd /ms-playwright-agent && npm init -y && npm i /tmp/playwright-core.tar.gz && npm exec --no -- playwright-core mark-docker-image "${DOCKER_IMAGE_NAME_TEMPLATE}" && npm exec --no -- playwright-core install-deps && if [ "$(uname -m)" = "aarch64" ]; then rm /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstwebrtc.so; else rm /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstwebrtc.so; fi && rm -rf /var/lib/apt/lists/* # buildkit |
| RUN |9 DEBIAN_FRONTEND=noninteractive TZ=America/Los_Angeles DOCKER_IMAGE_NAME_TEMPLATE=mcr.microsoft.com/playwright:v%version%-jammy NODE_VERSION=24 #= autogenerated= via= ./update-playwright-node.mjs= UBUNTU_MIRROR_PREFIX=azure. /bin/sh -c cd /ms-playwright-agent && npm exec --no -- playwright-core install chromium && chmod -R 777 /ms-playwright/chromium-* /ms-playwright/chromium_headless_shell-* /ms-playwright/ffmpeg-* # buildkit |
| RUN |9 DEBIAN_FRONTEND=noninteractive TZ=America/Los_Angeles DOCKER_IMAGE_NAME_TEMPLATE=mcr.microsoft.com/playwright:v%version%-jammy NODE_VERSION=24 #= autogenerated= via= ./update-playwright-node.mjs= UBUNTU_MIRROR_PREFIX=azure. /bin/sh -c cd /ms-playwright-agent && npm exec --no -- playwright-core install firefox && chmod -R 777 /ms-playwright/firefox-* # buildkit |
| RUN |9 DEBIAN_FRONTEND=noninteractive TZ=America/Los_Angeles DOCKER_IMAGE_NAME_TEMPLATE=mcr.microsoft.com/playwright:v%version%-jammy NODE_VERSION=24 #= autogenerated= via= ./update-playwright-node.mjs= UBUNTU_MIRROR_PREFIX=azure. /bin/sh -c cd /ms-playwright-agent && npm exec --no -- playwright-core install webkit && rm /tmp/playwright-core.tar.gz && rm -rf /ms-playwright-agent && rm -rf ~/.npm/ && chmod -R 777 /ms-playwright/webkit-* # buildkit |
| RUN /bin/sh -c curl -fsSL https://deb.nodesource.com/setup_24.x | bash - && apt-get install -y nodejs && rm -rf /var/lib/apt/lists/* # buildkit |
| WORKDIR /app |
| COPY package.json package-lock.json ./ # buildkit |
| RUN /bin/sh -c npm ci --omit=dev # buildkit |
| COPY src ./src # buildkit |
| COPY scripts ./scripts # buildkit |
| RUN /bin/sh -c mkdir -p data/blobs # buildkit |
| EXPOSE [3097/tcp] |
| HEALTHCHECK {Test:[CMD node -e fetch('http://127.0.0.1:3097/api/health').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))] Interval:30s Timeout:5s StartPeriod:10s StartInterval:0s Retries:3} |
| CMD ["node" "src/server.mjs"] |