a087321570
Without --profile test, `docker compose build` skips the playwright service (profiles: [test]) and the image is built on-demand by `compose run` instead. Across CI runs the Gitea runner caches the resulting tag, so a Dockerfile FROM bump (v1.50.0 → v1.59.1) is masked by the cached image — the container ends up with old browser binaries and Playwright's own version-mismatch check fails the suite. Pull base images on every build so the FROM tag wins.