Automatizando comandos usando Makefile

Neste tutorial irei demonstrar alguns exemplos de como automatizar comandos utilizando o Makefile.

Para esse tutorial iremos utilizar comandos docker. Neste post vimos como criar uma base dados Postgresql via docker, agora iremos utilizar o Makefile para facilitar esse processo em um projeto de desenvolvimento.

Além do docker instalado, também precisaremos utilizar o comando “make“. Caso você esteja no windows e não tenha o make configurado, você pode conferir neste rápido tutorial.

Sem mais delongas, vamos ao passo a passo.

Criando arquivo Makefile

A criação do arquivo é extremamente simples, basta acessar o local onde deseja criar o arquivo e criar um arquivo com o nome “Makefile“. Neste nosso exemplo, iremos criar o arquivo na raiz de um projeto java, com o intuito de criar uma tarefa de inicialização e criação de uma base PostgreSQL.

Arquivo Makefile

Agora com o arquivo já criado, podemos ver como criar funções para executar comandos.

Vamos começar criando um comando para a criação de um database postgresql usando docker.

Então vamos lá! Primeiro vamos criar algumas variáveis que vamos utilizar para a criação do banco, como nome, usuário, senha, porta e etc.

CONTAINER_NAME = "coffops-postgresql"
POSTGRES_USER = "coffopsuser"
POSTGRES_PASSWORD = "coffopspassword"
POSTGRES_DB = "coffopsdbname"
DOCKER_IMAGE = "postgres:14.2"

Agora após a configuração dos parâmetros, basta usar o que aprendemos no tutorial e criar a função de criação do database, conforme a imagem abaixo.

CONTAINER_NAME = "coffops-postgresql"
POSTGRES_USER = "coffopsuser"
POSTGRES_PASSWORD = "coffopspassword"
POSTGRES_DB = "coffopsdbname"
DOCKER_IMAGE = "postgres:14.2"

createDatabase:
@docker run --name $(CONTAINER_NAME) -e POSTGRES_USER=$(POSTGRES_USER) -e POSTGRES_PASSWORD=$(POSTGRES_PASSWORD) -e POSTGRES_DB=$(POSTGRES_DB) -d -p 5432:5432 $(DOCKER_IMAGE)

Pronto! Agora vamos utilizar o comando docker ps para conferir os containers rodando e depois iremos executar a tarefa que criamos para ver a mágica acontecer.

Listar containers: docker ps

Executar tarefa que criamos: make createDatabase

Pronto! Basicamente são esses os passos que você precisa para criar uma tarefa via Makefile.

Apenas lembrando que você também pode utilizar o comando make para executar qualquer rotina que você queira via terminal. Como rodar um lint, executar seus testes ou seja lá o que for.

Dica final! Você pode encadear comandos, como no exemplo a seguir!

CONTAINER_NAME = "coffops-postgresql"
POSTGRES_USER = "coffopsuser"
POSTGRES_PASSWORD = "coffopspassword"
POSTGRES_DB = "coffopsdbname"
DOCKER_IMAGE = "postgres:14.2"

removeDatabase:
@echo "Removendo data base"
@docker rm -f -v $(CONTAINER_NAME) || true

createDatabase: removeDatabase
@echo "Criando data base"
@docker run --name $(CONTAINER_NAME) -e POSTGRES_USER=$(POSTGRES_USER) -e POSTGRES_PASSWORD=$(POSTGRES_PASSWORD) -e POSTGRES_DB=$(POSTGRES_DB) -d -p 5432:5432 $(DOCKER_IMAGE)

Agora sim, podemos ver o resultado dos comandos sendo executados em sequencia!

Dica_Final_Agora_vai.docx

Se você precisar customizar ainda mais a criação do seu postgresql, veja como fazer isso na documentação da imagem oficial.

Deixe um comentário

O seu endereço de e-mail não será publicado.