Imported from sharkguto/bb-docker (
AGENTS.md). Install upstream withnpx skills add sharkguto/bb-docker. Copyright stays with the author.
Regras do projeto
Isolamento no Docker
- Use Ubuntu 24.04 LTS como imagem base.
- Instale e execute Python, pacotes Python, Zendriver, Google Chrome, Warsaw, MATE, TigerVNC, noVNC e qualquer outra dependência somente dentro da imagem ou do contêiner Docker.
- Não instale, baixe nem execute dependências diretamente no host.
- O host deve conter somente o repositório, o Docker/Compose e a porta publicada para acesso ao noVNC. Volumes nomeados e gerenciados pelo Docker são permitidos.
- Não monte o socket X11, diretórios de configuração, binários ou bibliotecas do host no contêiner.
- O instalador
warsaw_setup64.rundeve ser baixado durante o build da imagem, instalado dentro dela e removido da camada de trabalho após a instalação.
Ambiente gráfico
- Mantenha um MATE mínimo, apenas com os componentes necessários para Chrome, Warsaw e a sessão gráfica.
- Execute TigerVNC e noVNC dentro do contêiner.
- Publique o noVNC somente em
127.0.0.1:6080por padrão. - O Chrome deve ser visível e utilizável pela sessão noVNC; não use modo headless para o fluxo principal.
- Persista o perfil do Chrome somente em volume nomeado do Docker.
Warsaw
- Inicie o Warsaw dentro do contêiner antes do navegador.
- Mantenha o
execstackhabilitado no bináriocoree marquecore,wsatspiewsupdslcomo imutáveis durante a inicialização. - Conceda somente a capability necessária (
LINUX_IMMUTABLE); não useprivileged: true. - Valide que o Warsaw abriu
127.0.0.1:30800ou127.0.0.1:30900dentro do contêiner. Não publique essas portas no host.
Automação do navegador
- O entrypoint deve iniciar Warsaw, MATE, TigerVNC e noVNC e, em seguida, executar uma aplicação Python com Zendriver dentro do contêiner.
- O Zendriver deve usar o Google Chrome instalado na imagem e o display da sessão VNC.
- A URL inicial é
https://www.licitacoes-e.com.br/aop/index.jsp. - Após carregar o Licitações-e, localize e clique em
Sala de disputa, inclusive quando o elemento estiver dentro de frame/iframe. - Mantenha o navegador aberto após o clique para permitir interação manual pelo noVNC.
- Registre erros e tentativas da automação nos logs do contêiner, sem derrubar a sessão VNC quando um clique falhar temporariamente.
Operação e validação
- Faça builds, instalações e testes por comandos Docker/Compose.
- Não rode
apt,pip, Chrome, Zendriver ou o instalador do Warsaw no host. - Antes de concluir mudanças, valide o build, o healthcheck do contêiner, a resposta HTTP do noVNC, os processos do Chrome/MATE e a porta interna do Warsaw.
- Preserve o funcionamento após
docker restart, inclusive removendo apenas locks obsoletos do Chrome e do display VNC, sem apagar o perfil persistente.