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.
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.