Instalando Ruby on Rails
na sua máquina com o azk (em minutos!)

"essa é pra você" ;)

To read the English version, click here.

Somos fãs de boas ferramentas e bons serviços para desenvolvedores, principalmente daqueles bem comunicados para a comunidade.

Nesse sentido, gostamos muito da Digital Ocean.

O serviço é simples e direto, as interfaces são cuidadosamente desenhadas e preço e performance são garantidos pelo uso de SSD desde o começo.

Além disso, eles fazem um ótimo trabalho de criação de conteúdo gratuito na seção de comunidade. Perguntas e respostas, tutoriais e galerias de ferramentas.

Hoje esbarramos em um tutorial bacana para instalação de Ruby on Rails no Ubuntu usando rbenv.

Inspirados por ele, resolvemos fazer o tutorial abaixo, que visa o mesmo resultado, mas usando o azk;)

É possível ter um ambiente de Ruby On Rails e criar uma aplicação a partir do zero em apenas 10 minutos. Você só precisa de acesso à internet e do azk instalado na sua máquina. =D

Instalando o azk

Se você ainda não tem o azk instalado, basta seguir a documentação oficial. É realmente muito simples e rápido.

Gerando uma aplicação Ruby On Rails

Na documentação do azk, há instruções de como gerar novas aplicações do zero com diferentes linguagens e frameworks, como Node.js, PHP/Laravel, Python/Django. Vamos demonstrar aqui como gerar uma com Ruby On Rails.

# Obter um novo shell no contexto de uma imagem de Ruby
$ azk shell --image azukiapp/ruby --shell /bin/bash
# Instalar o Ruby On Rails sem documentação 
$ gem install rails --no-ri --no-rdoc

O gerador de aplicação do Rails suporta uma opção chamada `--database`, com a qual podemos definir o banco de dados utilizado em nossa aplicação.

Abaixo, temos exemplos para três bancos de dados populares. Execute um destes comandos segundo sua preferência:

# PostgreSQL 
$ rails new myApp --database=postgresql --skip-bundle
# MySQL
$ rails new myApp --database=mysql --skip-bundle
# SQLite
$ rails new myApp --skip-bundle

OBS: A opção `--skip-bundle` faz com que o gerador não execute o `bundle install` após gerar a aplicação. Não se preocupe. Durante a primeira inicialização da aplicação, o azk vai executá-lo automaticamente como parte do processo de configuração.

Para sair do shell da imagem de Ruby execute o comando:

$ exit
Caso você esteja usando Linux, é preciso transferir a propriedade dos arquivos gerados para o usuário atual. Dentro do container, o Rails roda com usuário root, sendo assim todos os arquivos gerados serão de propriedade do root. Caso a configuração `usuário_atual:grupo_principal` não seja sua opção, modifique o comando abaixo como for mais adequado:
$ sudo chown -R `id -un`:`id -gn` myApp

Criando o arquivo Azkfile.js

Agora que temos os arquivos da nossa aplicação Rails, é hora de criar o Azkfile.js do projeto. Este arquivo é espinha dorsal de como azk funciona. É com ele que o azk sabe como executar sua aplicação. Felizmente, não vamos precisar escrevê-lo zero. Basta executar:

$ cd myApp
$ azk init

Pronto! Com base nos arquivos da sua aplicação, o azk foi capaz de identificar que você tinha uma aplicação Rails com um database e propor uma descrição de arquitetura e dependências para executar a aplicação.

Conectando o banco de dados

Em aplicações Rails, normalmente utilizamos o arquivo `database.yml` para configurar a conexão com o database. Por outro lado, o formato de configuração desse arquivo é muito limitado. Ele não oferece a flexibilidade de que precisamos para lidar com serviços que podem mudar de host e porta a cada ciclo de start ou restart.

Isso não será um problema se utilizarmos o conceito de URI — Identificador Uniforme de Recursos, método que tem se tornado padrão por sua facilidade de configuração através de variáveis de ambiente.

É muito simples criarmos um `database.yml` personalizado, capaz de utilizar essa variável de ambiente. Para sua comodidade, já criamos este arquivo com suporte a variável "DATABASE_URL", que o azk vai injetar no ambiente da aplicação durante o processo de inicialização:

# Backup do arquivo original criado pelo Rails 
$ mv config/database.yml config/database.default.yml

$ azk shell -c "curl -L http://bit.ly/1Nkuqnk -o config/database.yml"

Executando a aplicação

$ azk start myApp --open

Após apenas alguns minutos (em que o azk vai baixar e configurar todo o ambiente para você, inclusive o servidor de banco de dados), seu browser deve abrir com a seguinte página:

No detalhe da barra de endereço: o azk oferece resolução de DNS local, que evita o uso de "localhost:XYZ"

Agora basta você continuar o desenvolvimento da aplicação como faria normalmente!

Se você é novo em Rails, um bom ponto de partida é o Getting Started oficial do framework (e você nem vai precisar se preocupar com a parte da instalação). ☺

É isso!

Se você gostou, não deixe de dar uma estrela pra o azk no Github! ;)

https://github.com/azukiapp/azk

Happy coding!
Time Azuki

Mais sobre o azk

+ Site: http://azk.io
+ Github: https://github.com/azukiapp/azk
+ Documentação: http://docs.azk.io
+ Diretório de imagens criadas pelo time do azk: http://images.azk.io

Contribua com o azk

+ “Star” o azk no Github: https://github.com/azukiapp/azk
+ Reporte um problema: https://github.com/azukiapp/azk/issues/new
+ Ajude a resolver um problema reportado:https://github.com/azukiapp/azk/issues
+ Confira os sponsors do azk: http://azk.io/#sponsors

Fale com o time do azk

+ Assine a newsletter semanal: http://www.azk.io/#newsletter
+ Acompanhe o blog: https://medium.com/azuki-news
+ Fale com nosso suporte (chat): https://gitter.im/azukiapp/azk/pt(Português) e https://gitter.im/azukiapp/azk (English)
+ Facebook: https://www.facebook.com/azukiapp
+ Twitter: http://twitter.com/azukiapp
+ YouTube: https://www.youtube.com/user/Azukiapp/videos

Like what you read? Give Gullit Miranda a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.