Mesmo com a crescente popularidade dos serviços em nuvem, a necessidade de executar aplicações nativas ainda existe.
Utilizando o C e o TigerVNC, você pode executar aplicações nativas dentro de um contêiner Docker e acessá-las remotamente usando um navegador Web. Além disso, você pode executar sua aplicação em um servidor com mais recursos de sistema do que você pode ter disponível localmente, o que pode fornecer maior flexibilidade ao se executar grandes aplicações.
Neste tutorial, você irá conteinerizar o Mozilla Thunderbird, um cliente de e-mail usando o Docker. Depois, você irá protegê-lo e fornecer acesso remoto usando o servidor Web Caddy.
Quando você terminar, você será capaz de acessar o Thunderbird a partir de qualquer dispositivo usando apenas um navegador Web. Opcionalmente, você também poderá acessar localmente os arquivos dele usando o WebDAV. Você também terá uma imagem Docker totalmente independente que você pode executar em qualquer lugar.
Antes de iniciar este guia, você precisará do seguinte:
sudo
.supervisord
Agora que seu servidor está em execução e o Docker está instalado, você está pronto para começar a configuração do contêiner da sua aplicação. Como seu contêiner consiste em vários componentes, você precisa usar um gerenciador de processos para iniciá-los e monitorá-los. Aqui, você estará usando o [supervisord](http://supervisord.org/)
. O supervisord
é um gerenciador de processos escrito em Python que é frequentemente usado para orquestrar contêineres complexos.
Primeiro, crie e entre em um diretório chamado thunderbird
para seu contêiner:
mkdir ~/thunderbird
cd ~/thunderbird
Agora crie e abra um arquivo chamado supervisord.conf
usando o nano
ou o seu editor preferido:
nano supervisord.conf
Agora adicione este primeiro bloco de código em supervisord.conf
, que definirá as opções globais para o supervisord:
[supervisord]
nodaemon=true
pidfile=/tmp/supervisord.pid
logfile=/dev/fd/1
logfile_maxbytes=0
Neste bloco, você está configurando o supervisord
propriamente. Você precisa definir o nodaemon
para true
porque ele estará executando dentro de um contêiner Docker como o entrypoint. Portanto, você vai querer que ele permaneça em execução em primeiro plano. Você também está definindo o pidfile
para um caminho acessível por um usuário não-root (mais sobre isso posteriormente), e o logfile
para stdout para que você possa ver os logs.
Em seguida, adicione outro pequeno bloco de código ao supervisord.conf
. Este bloco inicia o TigerVNC, que é um servidor VNC/X11 combinado:
#ubuntu 18.04 #gui #docker #caddy #mozilla thunderbird #webdav