Modo Headless

Configuração do servidor X em ambiente Linux headless

A biblioteca DotNetBrowser pode ser usada no ambiente Linux headless, desde que o servidor X esteja em execução.

Aqui está como iniciar o servidor X:

1. Instalar o servidor Xvfb

Por exemplo, isto pode ser feito através de apt no Ubuntu 20.04 LTS ou em outras distribuições baseadas em Debian suportadas:

sudo apt install xvfb

2. Execute a sua aplicação .NET

Utilize o comando xvfb-run para executar o comando que necessita num ambiente de servidor X virtual. Por exemplo, você pode envolver o comando dotnet run com xvfb-run para executar a sua aplicação a partir do código-fonte:

xvfb-run --server-args="-screen 0 800x600x24+32" dotnet run

É obrigatório especificar o tamanho da tela e a profundidade da cor.

Você também pode utilizar xvfb-run para definir um ponto de entrada do seu contêiner Docker:

ENTRYPOINT xvfb-run --server-args='-screen 0 800x600x24+32' dotnet Example.Console.dll

Verifique a configuração do contêiner de desenvolvimento de demonstração ao vivo no nosso repositório de início rápido.

Sobre o sinalizador de linha de comando “headless”

O Chromium 58 e superior suportam o sinalizador de linha de comando --headless que funciona apenas para Linux.

O sinalizador permite rodar o Chromium em ambiente Linux headless sem iniciar o servidor X. Este sinalizador é projetado para o caso em que você só precisa executar o Chromium em ambiente headless, carregar alguma URL e anexar à página web carregada usando DevTools através da chave --remote-debugging-port. Por exemplo:

chrome --headless --remote-debugging-port=9222 https://chromium.org

Neste caso, carrega-se a página web localhost:9222 num navegador web e trabalha-se com a página web carregada utilizando o DevTools.

Como pode ver, o sinalizador de linha de comando --headless foi concebido para ser usado quando você precisa carregar uma única página web e trabalhar com ela através do DevTools. Verificamos o código fonte do Chromium e descobrimos que este sinalizador força o Chromium a utilizar uma versão separada e limitada da API Chromium que não suporta a maioria (~80-90%) das funcionalidades utilizadas no DotNetBrowser.

Isso significa que esse sinalizador desabilita a maioria das funcionalidades do DotNetBrowser, como carregar diferentes páginas da Web por URL, HTML, navegar para trás e para frente, executar JavaScript, etc.

É por isso que este sinalizador NÃO É suportado pelo DotNetBrowser, e nós recomendamos que você inicie o servidor X para usar o DotNetBrowser num ambiente Linux headless.

Go Top