何を見つけたか
base イメージのビルドは Playwright のブラウザを取得した直後に捨てており、残るのは副作用のフォントだけになっている。 containers/base/Dockerfile の利用者側の RUN は次の順で動く。
npx playwright install --with-deps chromium; # :222 ブラウザを ~/.cache/ms-playwright へ入れる
sudo rm -rf /tmp/* ~/.cache ... # :226-227 直後に消す
Playwright の既定の置き場は ~/.cache/ms-playwright なので、入れたブラウザはイメージに残らない。 残るのは --with-deps が入れた 86 パッケージのほうで、その中に fonts-wqy-zenhei(中国語フォント)が含まれる。これが #161 の原因である(apt-cache rdepends --installed fonts-wqy-zenhei の Reverse Depends は空で、依存としては誰からも要求されていない)。
arm64 では、動作する Chromium がそもそも入らない。 google-chrome-stable は amd64 のときだけ足され(Dockerfile の if [ "$arch" = "amd64" ])、両アーキで入る chromium-browser は Ubuntu の snap スタブで、コンテナの中では起動しない。
playwright-kit は実行時に自前で入れる設計である(確認済み)。 devbasex/ai-plugins の plugins/playwright-kit/skills/playwright-kit-ops/templates/run.sh と scripts/init_project.sh は、.venv が無ければ uv sync + playwright install chromium を初回に実行する。templates/runtime-README.md も「初回は uv sync と playwright install chromium が自動実行されます (数分)」と書いている。したがって、消されているブラウザのキャッシュは playwright-kit の利用者には影響しない。
どこで見つけたか
決めること
| 論点 |
案 |
ビルド時の npx playwright install を残すか |
消すなら --with-deps の扱いに注意が要る。 --with-deps が入れた fonts-liberation(Arial / Times New Roman の metric 互換)と libnss3 などの共有ライブラリは、#161 の直し方(Arial → Liberation Sans)と Chromium の動作が前提にしている。ブラウザの取得だけをやめ、依存パッケージは明示で apt に足す形が要る |
| ブラウザをイメージに残すか |
残すなら PLAYWRIGHT_BROWSERS_PATH を ~/.cache の外(例: /opt/ms-playwright)へ向けて、クリーンアップで消えないようにする。イメージは約 150 MB 増える |
| arm64 の Chromium |
chromium-browser(snap スタブ)を入れるのをやめ、arm64 では Playwright の Chromium か、chromium の deb を使う形にする |
決定
ブラウザはイメージに残す。 PLAYWRIGHT_BROWSERS_PATH=/opt/ms-playwright にしてクリーンアップの対象外とし、arm64 でも Playwright の Chromium を使う。chromium-browser(snap スタブ)は apt から外す。
なぜこの変更の範囲外なのか
PLAN63(#161 / #160)の受け入れ条件は、fontconfig の解決先と 6 パッケージの追加だけを対象にしている。現象レイヤー(ブラウザが起動しない・ダウンロードが無駄になる)も修正レイヤー(ブラウザの導入方法とクリーンアップの範囲)もフォントとは別である。#161 の本文も「本 issue には含めない」と明記している。
fonts-wqy-zenhei の削除は、この課題でも行わない。 #161 が実測付きで結論している。削除しても OS 既定の 65-nonlatin.conf が残るため sans-serif は日本語にならず(タイ語の Loma か IPAPGothic へ落ちる)、中国語のページを豆腐にするだけになる。
直さないと何が起きるか
- base のビルドが毎回 100 MB 超のブラウザを取得して捨てる。ビルド時間と帯域が無駄になる
- arm64(Apple Silicon)のコンテナでは、システムの Chromium を使う道具が動かないままになる。
playwright-kit は実行時に自前で入れるため影響を受けないが、それ以外の経路(スクリーンショット・PDF 生成)は使えない
--with-deps の副作用で入るフォントが増え続ける余地が残る
由来
issue #161 の「決めること」 / PLAN63(issues/old/PLAN63_base-image-rendering.md)
何を見つけたか
base イメージのビルドは Playwright のブラウザを取得した直後に捨てており、残るのは副作用のフォントだけになっている。
containers/base/Dockerfileの利用者側のRUNは次の順で動く。Playwright の既定の置き場は
~/.cache/ms-playwrightなので、入れたブラウザはイメージに残らない。 残るのは--with-depsが入れた 86 パッケージのほうで、その中にfonts-wqy-zenhei(中国語フォント)が含まれる。これが #161 の原因である(apt-cache rdepends --installed fonts-wqy-zenheiの Reverse Depends は空で、依存としては誰からも要求されていない)。arm64 では、動作する Chromium がそもそも入らない。
google-chrome-stableはamd64のときだけ足され(Dockerfile のif [ "$arch" = "amd64" ])、両アーキで入るchromium-browserは Ubuntu の snap スタブで、コンテナの中では起動しない。playwright-kitは実行時に自前で入れる設計である(確認済み)。devbasex/ai-pluginsのplugins/playwright-kit/skills/playwright-kit-ops/templates/run.shとscripts/init_project.shは、.venvが無ければuv sync+playwright install chromiumを初回に実行する。templates/runtime-README.mdも「初回はuv syncとplaywright install chromiumが自動実行されます (数分)」と書いている。したがって、消されているブラウザのキャッシュはplaywright-kitの利用者には影響しない。どこで見つけたか
containers/base/Dockerfile(利用者側のRUNのnpx playwright install --with-deps chromium(:222)と、その直後のsudo rm -rf ~/.cache(:226-227))devbasex/ai-pluginsのplugins/playwright-kit/skills/playwright-kit-ops/(実行時導入の確認)決めること
npx playwright installを残すか--with-depsの扱いに注意が要る。--with-depsが入れたfonts-liberation(Arial / Times New Roman の metric 互換)とlibnss3などの共有ライブラリは、#161 の直し方(Arial→ Liberation Sans)と Chromium の動作が前提にしている。ブラウザの取得だけをやめ、依存パッケージは明示で apt に足す形が要るPLAYWRIGHT_BROWSERS_PATHを~/.cacheの外(例:/opt/ms-playwright)へ向けて、クリーンアップで消えないようにする。イメージは約 150 MB 増えるchromium-browser(snap スタブ)を入れるのをやめ、arm64 では Playwright の Chromium か、chromiumの deb を使う形にする決定
ブラウザはイメージに残す。
PLAYWRIGHT_BROWSERS_PATH=/opt/ms-playwrightにしてクリーンアップの対象外とし、arm64 でも Playwright の Chromium を使う。chromium-browser(snap スタブ)は apt から外す。なぜこの変更の範囲外なのか
PLAN63(#161 / #160)の受け入れ条件は、fontconfig の解決先と 6 パッケージの追加だけを対象にしている。現象レイヤー(ブラウザが起動しない・ダウンロードが無駄になる)も修正レイヤー(ブラウザの導入方法とクリーンアップの範囲)もフォントとは別である。#161 の本文も「本 issue には含めない」と明記している。
fonts-wqy-zenheiの削除は、この課題でも行わない。 #161 が実測付きで結論している。削除しても OS 既定の65-nonlatin.confが残るためsans-serifは日本語にならず(タイ語の Loma か IPAPGothic へ落ちる)、中国語のページを豆腐にするだけになる。直さないと何が起きるか
playwright-kitは実行時に自前で入れるため影響を受けないが、それ以外の経路(スクリーンショット・PDF 生成)は使えない--with-depsの副作用で入るフォントが増え続ける余地が残る由来
issue #161 の「決めること」 / PLAN63(
issues/old/PLAN63_base-image-rendering.md)