Памятка 02 · Build / Browser

Dockerfile и Playwright

Checklist кэша, runtime и container-only browser failures.

Порядок слоёв

FROM pinned-image
WORKDIR /work
COPY package*.json ./
RUN npm ci
COPY . .
USER nonroot
CMD ["npm", "test"]

Build

  • Минимальный context.
  • .dockerignore для git, env, reports.
  • Secrets через BuildKit mount.
  • Повторный build проверяет cache.
  • Image inspect/history без secrets.

Playwright contract

  • Package version = image version.
  • Image содержит browsers/deps, package ставит проект.
  • --init для child processes.
  • --ipc=host для Chromium.
  • Reports/traces вынести mount.

Container-only failure

  1. Versions и browser path.
  2. Memory/CPU/shared memory.
  3. PID 1 и signals.
  4. Network namespace/URL.
  5. User, UID/GID и mounts.

Ключевое различие

RUN создаёт результат во время image build. Exec-form CMD задаёт основной process нового container при runtime.