Introdução

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.

Pré-requisitos

Antes de iniciar este guia, você precisará do seguinte:

  • Um servidor Ubuntu 18.04 com pelo menos 2GB RAM e 4GB de espaço em disco.
  • Um usuário non root com privilégios sudo.
  • O Docker configurado em seu servidor. Você pode seguir o tutorial How To Install and Use Docker on Ubuntu 18.04.

Passo 1 - Criando a configuração do 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

Como acessar remotamente aplicações GUI usando Docker e Caddy no Ubuntu 18.04
1.15 GEEK