Sign inSign up

lzocateli/playwright-e2e

By lzocateli

•Updated about 1 month ago

Image
0

372

lzocateli/playwright-e2e repository overview

⁠Playwright E2E com pytest e WireGuard

Docker Hub Version Base Platforms Repository code license Build

Imagem base para suites E2E em Python com Playwright e pytest. Inclui ferramentas WireGuard para cenarios opcionais de VPN; o codigo dos testes e montado pelo consumidor em runtime.

⁠Referencia da imagem

ItemValor
Imagemlzocateli/playwright-e2e:0.1.0
Imagem basemcr.microsoft.com/playwright/python:v1.49.0-noble
Plataformaslinux/amd64
Usuario padraoroot (necessario somente para VPN)
Entry pointuv run --frozen pytest --confcutdir=/app
Diretorio de trabalho/app
Codigo-fontehttps://github.com/lzocateli/containers/tree/main/playwright-e2e
Documentacaohttps://github.com/lzocateli/containers/tree/main/playwright-e2e

⁠Conteudo e finalidade

⁠Incluido
  • Playwright Python 1.49.0, Chromium, Firefox e WebKit.
  • pytest 8.3.4, pytest-playwright, pytest-html e pytest-xdist.
  • uv 0.5.18 e utilitarios WireGuard, DNS e rede.
⁠Nao incluido
  • Testes, fixtures, configuracoes WireGuard e relatorios do consumidor.
  • Servico VPN, credenciais ou configuracao de destino.

⁠Inicio rapido

Monte a suite em /app e preserve o caminho de relatorios gravavel:

docker pull lzocateli/playwright-e2e:0.1.0
docker run --rm \
  --volume "$(pwd)/tests:/app/tests:ro" \
  --volume "$(pwd)/src:/app/src:ro" \
  --volume "$(pwd)/reports:/app/reports" \
  lzocateli/playwright-e2e:0.1.0 \
  --base-url=https://example.com

Para usar uma configuracao WireGuard montada em /app/vpn/configs, adicione --cap-add=NET_ADMIN --device=/dev/net/tun. Essas permissoes nao sao necessarias para execucoes sem VPN.

⁠Docker Compose

services:
  e2e:
    image: lzocateli/playwright-e2e:0.1.0
    volumes:
      - /caminho/absoluto/testes:/app/tests:ro
      - /caminho/absoluto/src:/app/src:ro
      - /caminho/absoluto/reports:/app/reports
      - /caminho/absoluto/vpn-configs:/app/vpn/configs:ro
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun
    command: ["--base-url=https://example.com"]

⁠Configuracao

⁠Variaveis de ambiente
VariavelObrigatoriaSecretaPadraoDescricao
PYTHONPATHNaoNao/app/srcCaminho para modulos da suite montada.
⁠Portas

Nenhuma porta publica faz parte do contrato desta imagem.

⁠Persistencia e mounts
Caminho no conteinerModoConteudoBackup necessario
/app/testsroTestes pytestSim, no repositorio consumidor
/app/srcroFixtures, plugins e utilitariosSim, no repositorio consumidor
/app/reportsrwRelatorios HTML e videosSim, conforme politica da suite
/app/vpn/configsroConfiguracoes WireGuardSim, de forma segura
⁠Secrets

Forneca credenciais via secrets do orquestrador ou --env-file. Arquivos WireGuard sao sensiveis e devem ser montados somente em runtime, nunca copiados para a imagem.

⁠Inicializacao e ciclo de vida

O entrypoint executa pytest com o diretorio de configuracao em /app. O comando padrao usa http://host.containers.internal:1313 como URL base e pode ser substituido por argumentos pytest. A imagem nao possui health check pois e um processo de curta duracao, nao um servico de rede.

⁠Seguranca

  • A imagem inicia como root para permitir wg-quick quando a VPN estiver habilitada; execute sem NET_ADMIN e sem dispositivo TUN quando ela nao for necessaria.
  • Nao expoe portas e nao armazena configuracoes VPN ou credenciais.
  • Prefira mounts de codigo somente leitura e mantenha gravavel apenas /app/reports.
  • A imagem base oficial do Playwright e fixada na versao 1.49.0; atualize-a junto da tag da imagem.

⁠Build local

docker build --pull --tag lzocateli/playwright-e2e:0.1.0 playwright-e2e

⁠Tags e compatibilidade

TagMutabilidadeCompatibilidadeUso recomendado
0.1.0ImutavelPlaywright 1.49.0 e Python 3.12CI e suites compativeis

Nao ha tag movel publicada. Atualizacoes de Playwright, Python ou do entrypoint requerem uma nova tag imutavel.

⁠Validacao

Antes da publicacao, confirme:

  • docker buildx build --check --file playwright-e2e/Dockerfile playwright-e2e;
  • build para linux/amd64;
  • bash playwright-e2e/scripts/smoke-test.sh --image lzocateli/playwright-e2e:0.1.0;
  • exclusao de .env, secrets e .git do contexto;
  • scan de vulnerabilidades, SBOM e proveniencia pelo workflow oficial.

⁠Publicacao

Use Actions > Publicar imagem de container > Run workflow com:

  • context_path: playwright-e2e;
  • image_name: playwright-e2e;
  • image_tag: 0.1.0;
  • dockerfile: Dockerfile;
  • platforms: linux/amd64.

⁠Operacao

Preserve os relatorios no volume do host. Para atualizar, publique uma nova tag, execute a suite em homologacao e reverta a referencia da imagem da suite consumidora caso necessario.

⁠Troubleshooting

SintomaCausa provavelVerificacaoCorrecao
permission denied ao conectar VPNCapacidade de rede ausenteconferir cap_add e /dev/net/tunadicionar NET_ADMIN e o dispositivo TUN
Relatorio nao e criado/app/reports nao esta gravavelverificar o bind mountconceder escrita ao diretorio de relatorios
Browser nao iniciaSandbox ou recursos insuficientesrevisar logs do pytestexecutar no runtime Docker suportado e revisar limites

⁠Limitacoes conhecidas

  • Plataforma validada neste repositorio: linux/amd64.
  • A VPN depende de configuracao WireGuard fornecida pelo consumidor e de capacidades Linux explicitas.

⁠Licencas e fontes

ComponenteVersaoLicencaFonte
Conteudo original deste repositorioAtualMIThttps://github.com/lzocateli/containers
Playwright1.49.0Apache-2.0https://playwright.dev/
pytest8.3.4MIThttps://pytest.org/
uv0.5.18MIT ou Apache-2.0https://github.com/astral-sh/uv

O badge MIT descreve somente o conteudo original deste repositorio. Componentes de terceiros permanecem sujeitos aos seus termos e avisos de licenca. Consulte a politica de licenciamento⁠.

⁠Historico de alteracoes

  • 0.1.0: primeira imagem base migrada do projeto playwright-e2e.

Tag summary

Content type

Image

Digest

sha256:d5f0ba3dd…

Size

1 GB

Last updated

about 1 month ago

docker pull lzocateli/playwright-e2e:0.1.0