Trabalhar com Microservices é algo extremamente produtivo, você pode ter cada parte da sua aplicação em projetos/repositórios separados, utilizar a melhor linguagem para aquela funcionalidade e ainda fazer o deploy de cada Microservice isoladamente, sem afetar o restante da sua aplicação.
Nesse tutorial vamos demonstrar com exemplos como mapear cada docker container nas configurações do Nginx, sendo tanto para sub-domínios quanto para uma pasta em um domínio específico.

Estrutura de diretório

Nesse projeto de exemplo, para efeito de simplicidade, teremos 2 microservices, 1 nginx como nosso proxy e 1 database noSQL. Claro que você pode depois alterar essa arquitetura para usar quantos microservices você quiser, em qualquer linguagem que quiser e utilizar database tanto SQL quanto noSQL.

accounts/
|_ Dockerfile
pagerduty/
|_ Dockerfile
nginx/
|_ conf/
|_ sites.conf
|_ .htpasswd
|_ Dockerfile
docker-compose.yml

 

Configuração do Docker Compose para microservices

 

Dockerfile do microservice “accounts”

 

 

Dockerfile do microservice “pageduty”

 

 

Dockerfile do Nginx

 

Configurando o Nginx

 

 

 

Criando as imagens e subindo os containers com o docker-compose

 
# You can start your service with
PAGERDUTY_TOKEN={TOKEN} docker-compose up -d

# Stop services
docker-compose stop

# Rebuild service(s)
docker-compose build
docker-compose build accounts

Comentários

comentários