Implantações de servidor no Ubuntu com Docker e Supervisor

Usaremos o supervisor para gerenciar os contêineres docker em nossa máquina host.

Instalação

Instale o Docker e o Supervisor via apt. Há um espelho que contém a versão mais recente do docker.

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

$ sudo sh
-c "echo deb https://get.docker.io/ubuntu docker main
> /etc/apt/sources.list.d/docker.list"


$ sudo apt
-get update
$ sudo apt
-get install lxc-docker

Aqui está um guia completo sobre como instalar o docker: https://docs.docker.com/installation/ubuntulinux/

Configurando o Docker

Atualize /etc/default/dockere adicione a seguinte linha:

DOCKER_OPTS="-r=false $DOCKER_OPTS"

Isso impede que o docker reinicie automaticamente os contêineres que falharam ao iniciar. Vamos deixar o supervisor cuidar disso para nós.

Configuração do Supervisor

Escreva uma configuração de supervisor para seu aplicativo e salve-a em ./etc/supervisor/conf.d/

Aqui está um exemplo de configuração de supervisor para seu aplicativo

[program:myapp]
autorestart
=true
autostart
=true
command
=docker run --name myapp -a stdout -a stderr --rm=true -p 3000:3000 -v /home/ubuntu/deploy:/app -e PORT=3000 me/myapp python server.py

Argumentos de comando usados

  1. --name define o nome do nosso contêiner.
  2. -a stdout -a stderr obtém o fluxo do processo interno para que possamos usar o supervisor para registrar.
  3. Parar um contêiner não o exclui. remove o contêiner assim que ele é interrompido.--rm
  4. -p 3000:3000 encaminha a porta 3000 do nosso host para a porta 3000 do nosso contêiner.
  5. Você pode definir variáveis ​​de ambiente dentro do contêiner. ie.-e PORT=3000