Qual desenvolvedor nunca teve que subir uma aplicação em uma máquina virtual e teve que instalar algum banco de dados ou algum java da vida pra executar a aplicação.
Para evitar essas dores de cabeça geralmente é utilizado o Docker para iniciar um contêiner contendo um banco de dados ou algum servidor exemplo Tomcat.
Nesse artigo irei explicar como o Docker Compose pode facilitar sua vida e inicialização vários contêiners com algumas configurações bem simples.
O que é Docker Compose
Basicamente um ferramenta para gerenciar vários conteiners Docker, informando os serviços, dependências, volumes e etc.
Nesse tutorial vamos falar do simples, se é uma ferramenta que é pra facilitar, pra que complicar?
Configurações necessárias
Para isso é necessário ter o Docker Engine instalado na sua máquina, agora copie o código abaixo em um arquivo chamado docker-compose.yaml
Nosso código:
version: '3'
services:
web:
image: nginx
volumes:
- ./templates:/etc/nginx/templates/default.conf
ports:
- "8080:80"
Definimos o version que é a versão do formato do nosso código.
Definimos o services que são os conteiners que desejamos utilizar e dentro deles temos alguma configurações, como:
A imagem que está no DockerHub, volumes para persistir os dados do conteiner e ports para definir como iremos acessar aquele recurso.
Agora ao executar o comando docker compose up
iremos baixar as imagens e iniciar os contêiners, agora se quisermos dar o mesmo comando e execucar em segundo plano fazemos assim docker compose up -d
, para parar a execução no nosso terminal só dar um Ctrl+C ou quando executar em segundo plano docker compose stop
.
Adicionando um banco de dados
Agora iremos adicionar um Postgres em nosso projeto pra isso copie o código:
version: '3'
services:
web:
image: nginx
volumes:
- ./templates:/etc/nginx/templates/default.conf
ports:
- "8080:80"
db:
image: postgres:latest
restart: always
environment:
- POSTGRES_PASSWORD=123
ports:
- "5433:5432"
Com isso iremos iniciar um servidor nginx e um banco de dados em somente uma configuração, sem precisar ter instalado nada em nossas máquinas, apenas com a dockerização usando o Docker.
Imagem personalizadas
Para criar um conteiner com uma imagem personalizada é muito simples basta adicionar o atributo build
e pronto, pode utilizar sua imagem de um Dockerfile no Compose.
Exemplo:
services:
app:
build: ./
ports:
- "8080:8080"
container_name: app
depends_on:
- db
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/database
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=123
Aqui no caso estou criando uma imagem de um projeto Spring Boot que depende de outra imagem que se chama db para ser executada corretamente.
Isso é tudo pra esse artigo, bem simples e rápido, caso deseje se aventurar no mundo do Docker Compose ou Docker acessa a documentação:
Documentação Docker Compose
Top comments (0)