Solução de PaaS Brasileiro - Docker, Shell Script e Golang
Iniciei minha aventura no mundo Docker há 6 meses e com a necessidade de agilizar o provisionamento de contêineres iniciei um projeto chamado git2docker.io. Espero que seja útil a alguém.
Parte 4: Utilizando um nginx proxy para efetuar o deploy da aplicação utilizando a opção domain
Configure seu servidor DNS ou /etc/hosts para prover a resolução de nomes dos domínios utilizados, no nosso exemplo irei utilizar o domínio .git2docker.
No arquivo git2docker.conf é possível setar qual domínio a aplicação irá utilizar, caso essa opção não seja informada a aplicação será disponibilizada com o nome similar a esse: appname.username.
# cd /etc/systemd/system
# vi nginx-proxy.service
Habilitando e iniciando o serviço:
# systemctl enable /etc/systemd/system/nginx-proxy.service
# systemctl start nginx-proxy.service
Faca algum deploy editando o arquivo git2docker.conf de cada aplicação e adicione a opção domain.
Exemplo:
Caso não tenha um servidor DNS configurado, você pode testar editando o arquivo /etc/hosts.
Exemplo:
No arquivo git2docker.conf é possível setar qual domínio a aplicação irá utilizar, caso essa opção não seja informada a aplicação será disponibilizada com o nome similar a esse: appname.username.
Nginx proxy
Criando um serviço systemd:# cd /etc/systemd/system
# vi nginx-proxy.service
[Unit]
Description=nginx-proxy
After=docker.service
Requires=docker.service
[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill nginx-proxy
ExecStartPre=-/usr/bin/docker rm nginx-proxy
ExecStartPre=/usr/bin/docker pull jwilder/nginx-proxy
ExecStart=/usr/bin/docker run -restart=always -d --name=nginx-proxy -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy
[Install]
WantedBy=multi-user.target
Description=nginx-proxy
After=docker.service
Requires=docker.service
[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill nginx-proxy
ExecStartPre=-/usr/bin/docker rm nginx-proxy
ExecStartPre=/usr/bin/docker pull jwilder/nginx-proxy
ExecStart=/usr/bin/docker run -restart=always -d --name=nginx-proxy -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy
[Install]
WantedBy=multi-user.target
Habilitando e iniciando o serviço:
# systemctl enable /etc/systemd/system/nginx-proxy.service
# systemctl start nginx-proxy.service
Faca algum deploy editando o arquivo git2docker.conf de cada aplicação e adicione a opção domain.
Exemplo:
state=build
domain=apache-demo.git2docker
domain=apache-demo.git2docker
Caso não tenha um servidor DNS configurado, você pode testar editando o arquivo /etc/hosts.
Exemplo:
192.168.100.56 apache-demo.git2docker
192.168.100.56 nodejs.git2docker
192.168.100.56 nodejs.git2docker
Mas o artigo ficou muito bom.
___________________________________________________________________
"Vivemos todos sob o mesmo céu, mas nem todos temos o mesmo horizonte." - Konrad Adenauer
Ubuntu 14.04 LTS amd64 - Core i7 3770K, 8GB RAM - NVIDIA GTX 760 Windforce