35 lines
1.5 KiB
Docker
35 lines
1.5 KiB
Docker
# Chrome end-to-end image: the pinned Playwright image with this repo and a
|
|
# freshly built extension inside it, built by script/test-e2e. The suite is
|
|
# still started with `docker run`, so every runtime flag the harness needs
|
|
# (--ipc=host in particular) applies as before.
|
|
#
|
|
# The repo is baked in rather than bind-mounted because a bind mount does
|
|
# not resolve under Gitea Actions: the runner runs the job in a container
|
|
# against the HOST's docker socket, so the source side of a -v is resolved
|
|
# by the host daemon while the job's checkout lives on a docker volume that
|
|
# is not a host path -- the mount silently succeeds and /work is empty. A
|
|
# build context is streamed to the daemon and so works from anywhere.
|
|
# Building the extension here too means the machine starting a run needs
|
|
# docker and nothing else.
|
|
|
|
# mcr.microsoft.com/playwright:v1.56.0-noble, 2026-08-09
|
|
#
|
|
# The playwright-core devDependency is pinned to the matching Playwright
|
|
# version (1.56.0) and the two must be bumped together: the browsers ship
|
|
# inside this image, and playwright-core looks for the exact browser
|
|
# revision its own version expects. A mismatch fails at launch.
|
|
FROM mcr.microsoft.com/playwright@sha256:35246d87a7c88ea9b771c65d33171b2611b02a8253b4b12ce6f94376c55f99f2
|
|
|
|
WORKDIR /work
|
|
|
|
# Same layering as the root Dockerfile: script/bootstrap installs the
|
|
# prerequisites and the dependencies, and the manifests are copied first so
|
|
# that layer is cached until they change.
|
|
COPY script/ script/
|
|
COPY package.json yarn.lock ./
|
|
RUN script/bootstrap
|
|
|
|
COPY . .
|
|
|
|
RUN make build
|