[Post + Vídeo] Usando Docker para desenvolver aplicações Ruby on Rails

Que tal ter um ambiente todo prontinho para trabalhar com Rails de forma simples e rápida? Legal, hein?! Se é isso que você almeja, então vem com a gente! 😉

Se você já trabalha com Rails (ou mesmo outras linguagens), sabe que uma das coisas que pode te fazer perder um bom tempo é a tal da configuração do ambiente no qual vai se trabalhar.

Já há algum tempo o mercado tem percebido isso, e não por acaso a moda dosDevOps tem se tornado cada vez mais comum.

Eu, por outro lado, sempre precisei ter “ambientes instantâneos” por conta das aulas leciono, visto que não sou muito fã de ensinar primeiramente como configurar todo o ambiente Rails para quem está dando os primeiros passos, pois na minha visão acredito que isso seja algo que desvia a atenção inicial necessária para se aprender uma nova tecnologia.

Seguindo essa proposta, tenho me visto como um grande defensor de IDEs online como a Cloud9 e por esse motivo acabei escrevendo dois outros posts onde comento a respeito.

Por outro lado, é muito bom ter tudo instalado e funcionando de forma local em seu computador, visto que ficar dependendo da Web para programar é algo que não se pode confiar.

Pois bem, sendo assim, resolvi recentemente criar uma imagem Docker que facilitasse ao máximo o aprendizado para quem está iniciando com o Rails e foi assim que surgiu a imagem jacksonpires/ubuntu-rails-ssh, hospedada no Docker Hub.

Com a citada imagem é possível ter um ambiente totalmente configurado, prontinho para o uso.

Vejamos como usá-la.

Após a instalação do Docker em seu computador, rode:

docker pull jacksonpires/ubuntu-rails-ssh

O comando acima fará o download da imagem jacksonpires/ubuntu-rails-ssh que ficará disponível em seu computador logo depois que for finalizado.

Na sequência rode o comando…

docker run -d -P -v $(pwd):/projects --name railscontainer jacksonpires/ubuntu-rails-ssh

Esse comando inicializará um container baseado na imagem que baixamos e também mapeará a pasta na qual você estiver para dentro do container.

Em seguida, verifique as portas que foram mapeadas rodando o comando…

docker port railscontainer

Perceba que a porta 22 (SSH) foi mapeada para a 32793 e a porta 3000 (Rails) foi mapeada para 32792.

Se preferir, rode o comando abaixo para guardar tais informações em um arquivo.

docker port railscontainer > ports.txt

Pronto, nesse momento você já poderá acessar o container em funcionamento usando SSH.

Se você usa Windows, instale o Git for Windows e use oGit Bash antes de rodar o comando a seguir.

ssh [email protected] -p 32793

Será solicitada uma senha e você deve digitar “app”que é a senha padrão.

Ao entrar no container você pode verificar as versões do Ruby e do Rails, rodando…

ruby -v

e

rails -v

Na sequência vá para a pasta /projects que foi a pasta mapeada quando iniciamos o container.

Prontinho. Nesse momento você pode criar uma aplicação Rails para fazer um teste. Rode:

rails new teste

Após a aplicação ser criada entre na pasta e inicie o servidor Rails.

cd teste
rails s -b 0.0.0.0

Agora é só acessar o navegador no endereço localhost, indicando a porta para qual foi mapeada a porta 3000. No nosso caso vai ser http://localhost:37292

A partir desse momento você poderá desenvolver normalmente, nesse caso, estando em uma máquina Ubuntu “cotainirizada” 😉

Alguns comandos importantes são:

# Sai do container
exit
# Lista todos os containers em funcionamento
docker container ls
# Para um container
docker container stop railscontainer
# Lista todos os containers (mesmo os parados)
docker container ls -a
# Inicia um container
docker container start railscontainer

É isso, gente! Caso tenha ficado alguma dúvida, assista ao vídeo que fiz e disponibilizei em nosso canal do youtubeAproveite e inscreva-se também!

Ahh, e é claro, caso queiram aprender como o Docker funciona a fundo, não deixem de adquirir nosso curso de Docker para Desenvolvedores Ruby on Rails! 😉

Aproveitem e qualquer dúvida é só comentar aí embaixo!

Um super abraço e até a próxima!