Ambiente de desenvolvimento Rails com Docker Compose
Há tempos que eu procuro um método de criar e recriar um ambiente de desenvolvimento com certa facilidade, até que encontrei o Docker Compose.
Com ele eu consigo com apenas um comando: instalar dependencias, instalar aplicações dependendes, criar banco de dados, e tudo o que mais for necessário
Mas indo por partes, o que é o Docker?
Basicamente, é uma maneira padronizar a forma na qual você entrega sua aplicação, por meio de um arquivo (Dockerfile) com as instruções de build e packing do seu sistema. Você pode criar imagens das suas aplicações e executá-las dentro de containeres virtualizados, tendo controle sob tudo o que acontece.
Link para instalção do Docker e o Compose: https://docs.docker.com/compose/install/
Portanto, o Docker Compose é uma aplicação que ajuda no gerenciamento desses containers e imagens, e com ele torna-se mais fácil o gerenciamento de aplicações complexas. Ok, mas como?
O Compose utiliza um arquivo (docker-compose.yml) com as instruções para a criação dos containeres, vejamos um exemplo abaixo para um ambiente de desenvolvimento Rails:
https://gist.github.com/alvarocantador/6612d710136cae93f8d175d2a9eb6eae
Neste arquivo estou criando containeres para:
O PostgreSQL, que é o banco de dados que prefiro utilizar. Aqui utlizo uma imagem já pronta, sendo essa https://hub.docker.com/_/postgres/. Se preferir utilizar outro banco de dados você pode procurar a imagem no Docker Hub
O Elasticsearch, onde utilizo para busca textual. Repare que nele libero as portas 9200 e 9300 para o acesso da aplicação.
E por fim, a aplicação Rails. Ele tem seu próprio Dockerfile, o qual deve ficar na raiz da aplicação.
O Dockerfile:
https://gist.github.com/alvarocantador/ecf3c126c4f8b1a98b698b8ef85f86ab
Basicamente é isso, basta colocar ambos os arquivos e executar o comando "docker-compose up"
Espero ter ajudado! :)















