[Post + Vídeo] Como usar uma box Vagrant específica para desenvolver com Ruby on Rails?

Há tempos os alunos do curso de Rails me pedem uma box Vagrant pronta para usarem durante os estudos de Ruby on Rails e dessa vez ela saiu! 🙂

Com o advento do Vagrant Cloud tudo ficou mais fácil e eu agora tomei vergonha na cara e publiquei a primeira versão da box. =D

Nesse momento você pode estar se perguntando… Ok, Jackson, mas você não recomenda usar o Docker?

Bem, minha resposta pra isso é simples…

Eu tenho usado Docker já há algum tempo e apesar de gostar bastante, o Vagrant ainda tem uma curva muito menor de aprendizado para quem quer tirar proveito de um ambiente isolado na hora de programar, principalmente os iniciantes, por isso nos meus cursos uso e recomendo o Vagrant. Por outro lado, após aprender a usar o Vagrant, recomendo sim o uso do Docker, principalmente para você crescer como profissional.

Dito isso, vamos adiante! 😉

Para desfrutar da box em questão, você vai precisar instalar o VirtualBox, depois o Vagrant e para quem usa Windows deve instalar também o Git for Windows.

Após instalar os aplicativos acima, abra o terminal (para usuários do Windows, usem o Git Bash), vá para uma pasta onde quer deixar seus projetos (ex: /projeto ou c:\projetos) e rode o seguinte comando:

vagrant plugin install vagrant-vbguest

Esse comando fará a instalação o plugin vagrant-vbguest, que será necessário para que não tenhamos problema com a pasta compartilhada com nossa VM. Na sequência, rode:

vagrant init

O comando acima vai criar um arquivo chamado Vagrantfile. Edite esse arquivo e substitua seu conteúdo pelo script abaixo.

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "jacksonpires/ubuntu-rails-dev"
config.vm.box_version = "1.0.0"

config.vm.network :forwarded_port, guest: 3000, host: 3000 # rails
config.vm.network :forwarded_port, guest: 1080, host: 1080 # mailcatcher
config.vm.network :forwarded_port, guest: 3306, host: 3306 # mysql
config.vm.network :forwarded_port, guest: 5432, host: 5432 # postgresql
  config.vm.provider "virtualbox" do |vb|    
vb.customize [ "modifyvm", :id, "--uartmode1", "disconnected" ]
end
end

Se preferir, também disponibilizei o script no Gist.

Pronto. Agora, após salvar e sair do arquivo, rode no prompt o comando:

vagrant up

E é só! \o/

Após o processo de boot da máquina virtual, você poderá entrar na mesma usando o comando:

vagrant ssh

Esse comando te fará entrar na máquina e uma vez dentro dela, vá para a pasta /vagrant que é compartilhada com sua máquina real.

cd /vagrant

Essa box já vem com o RVM e o NVM instalados, então é só instalar a versão desejada do Rails e fim de papo! 🙂

gem install rails

Ainda ficou com dúvidas? Então assiste ao vídeo que está disponível no nosso canal do Youtube onde mostro todos os passos acima.

Além disso, vale ressaltar alguns comandos que você pode usar com o vagrant…

exit               # sai da máquina virtual
vagrant suspend # pausa a máquina virtual
vagrant halt # para a máquina virtual
vagrant up # inicializa a máquina virtual

É isso! Divirtam-se! 😉