Docker como Ambiente de Desenvolvimento Ruby on Rails

15 Dez 2019 - Alison Souza

Um boa opção para montar seu ambiente de desenvolvimento Ruby on Rails é usando o Docker e o Docker Compose.

Permite isolar seu ambiente ruby, banco de dados, sidekiq e outros componentes que compõem sua solução.

As vantagens são:

Setup

Neste repositório há um exemplo. Altere o arquivo DockerFile para mudar a versão do Ruby e nome do projeto/aplicação. Mude o arquivo docker-compose.yml para editar as informações do banco de dados e nome do projeto.

Considerando que o docker já esta instalado:

  1. Para baixar a imagem do MySQL execute docker pull mysql.
  2. Crie um diretório com o nome da aplicação/projeto.
  3. Copie os quatro arquivos para esta pasta.
  4. Execute o comando docker-compose build para criar a nova imagem.
  5. O passo anterior pode levar alguns minutos, em seguida execute docker-compose run web rails-api new .
    • Isto irá criar uma nova aplicação Rails com o mesmo nome da pasta.
  6. Digite yes quando for perguntado sobre sobrescrever o arquivo Gemfile.
  7. Edite o arquivo config/database.yml com as informações de acesso ao banco de dados.
  8. Para criar o database execute docker-compose run web rails db:create.
  9. Para iniciar o ambiente: docker-compose up web.
  10. O aplicativo esta pronto para ser acessado http://localhost:3000.

Para executar outros comandos:

  1. Para criar modelos, views e etc, use o comando docker-compose run web rails g <something> <options>.
  2. Execute docker-compose run web rails db:migrate.

O Docker é uma ótima alternativa para virtualizar ambiente de desenvolimento, endereçando a criação de máquinas através da criação e execução de scripts. Padroniza a permite que todos na equipe estejam usando a mesma versão do ambiente.