Criando um ambiente para testar o Rails 6
Fala pessoal, tudo certo?
Sabemos que o querido framework teve o final release da versão 6.0 recentemente e é claro que queremos testar e brincar um pouco para ver as novidades que ele trouxe.
Para isso, vamos usar nosso amigo docker, que nos possibilita criar ambientes isolados e limpos para nossa aplicação.
Vamos para o código
A primeira coisa que iremos fazer, é criar um arquivo Dockerfile
que é responsável por instalar os requisitos do nosso container
A ideia desse arquivo é, usando a imagem com versão 2.6 do ruby (o Rails 6 requer no mínimo o ruby 2.5), instalar alguns pacotes necessários (node, cliente do postgres e o yarn). Repare que ele também cria o diretório para o projeto dentro do container (no caso /myapp) e copia o Gemfile e o Gemfile.lock responsávaeis por instalar o rails e manter as versões corretas no container.
O arquivo Gemfile, inicialmente (após o build do container, será reescrito), é o abaixo. Crie também um arquivo Gemfile.lock vazio.
Precisamos também criar o arquivo entrypoint.sh, já que é necessário remover o arquivo server.pid, que ajudar a identificar que há um servidor rodando. Esse arquivo, por alguma razão, pode não ser removido quando o servidor do rails é terminado.
Por fim, vamos criar o nosso docker-compose:
Com isso, podemos rodar o seguinte comando para construir e criar a aplicação rails
docker-compose run web rails new . --force --no-deps --database=postgresql
Após rodar esse comando, se você está usando linux, será necessário mudar o owner dos arquivos criados para o seu usuário:
sudo chown -R $USER:$USER .
Você pode reparar que o arquivo Gemfile e o Gemfile.lock foram modificados. Agora precisaremos fazer um build para atualizar a referencia de gems no nosso container:
docker-compose build
Agora estamos quase acabando. Precisamos apenas configurar o arquivo database.yml que fica na pasta config/
Agora já podemos subir a aplicação e criar o banco de dados. Em dois terminais diferentes, rode os seguintes comando:
docker-compose up
docker-compose run --rm rails db:create
Ai é só alegria, agora é so acessar localhost:3000 e ver a carinha do Rails 6.0
Obs: Esse artigo teve como base o tutorial do próprio docker https://docs.docker.com/compose/rails/