Add browsers for tests: Playwright, Firefox, geckodriver, headless Chrome (closes #10)

Firefox comes from Mozilla's own apt repo since Ubuntu's is a snap that
does not run in a container. geckodriver is matched to it at build time.
Playwright installs its Chromium and Firefox, skipping WebKit which has
no linux-arm64 build; Playwright's Chromium is exposed as the headless
Chrome.

Model: deepseek-v4-pro
This commit is contained in:
2026-11-05 14:13:30 +00:00
parent 2633ae263c
commit b66ddc7a63
4 changed files with 45 additions and 3 deletions
+8 -2
View File
@@ -30,6 +30,11 @@ Image: `git.eeqj.de/sneak/baseimage`, built for `linux/amd64` and
| yarn, pnpm | corepack, cache pre-populated | `/usr/local/corepack` |
| wrangler | `npm install -g wrangler` | nvm LTS global bin |
| prettier | `npm install -g prettier` | nvm LTS global bin |
| Playwright | `npm install -g playwright` | nvm LTS global bin |
| Playwright browsers | `playwright install` (chromium, firefox) | `/ms-playwright` |
| Firefox | Mozilla apt repo | `/usr/bin/firefox` |
| geckodriver | GitHub release | `/usr/local/bin/geckodriver` |
| headless Chrome | Playwright Chromium | `chromium` on `PATH` |
| Python (distro) | apt `python3`, `pip`, `venv` | `/usr/bin/python3` |
| pyenv | git tag | `/usr/local/pyenv` |
| Python (latest) | `pyenv install` | `/usr/local/pyenv/versions/*` |
@@ -68,7 +73,8 @@ dependencies in child images.
Environment variables set in the image: `NVM_DIR`, `NVM_SYMLINK_CURRENT`,
`COREPACK_HOME`, `COREPACK_ENABLE_DOWNLOAD_PROMPT=0`,
`COREPACK_ENABLE_AUTO_PIN=0`, `PYENV_ROOT`, `GOPATH`, `LANG=C.UTF-8`.
`COREPACK_ENABLE_AUTO_PIN=0`, `PYENV_ROOT`, `GOPATH`, `LANG=C.UTF-8`,
`PLAYWRIGHT_BROWSERS_PATH`.
### Yarn and corepack
@@ -93,7 +99,7 @@ the `Dockerfile`:
Everything else resolves to its current release at build time: Ubuntu
packages, Go, Node LTS, Python, Hugo, golangci-lint, npm, yarn, pnpm,
wrangler.
wrangler, prettier, Playwright and its browsers, Firefox, geckodriver.
## Services and init