Nesta página

Ruby

A Guara Cloud suporta totalmente aplicacoes Ruby, incluindo frameworks como Ruby on Rails, Sinatra, Hanami e qualquer aplicacao baseada em Rack.

Versoes suportadas

As seguintes versoes do Ruby sao detectadas automaticamente:

  • Ruby 3.1
  • Ruby 3.2
  • Ruby 3.3

A versao e detectada automaticamente a partir do seu Gemfile ou arquivo .ruby-version.

# Gemfile
ruby '3.3.0'

Deploy com Dockerfile

Para ter controle total sobre o build, inclua um Dockerfile na raiz do seu repositorio.

FROM ruby:3.3-slim

WORKDIR /app

RUN apt-get update -qq && apt-get install -y build-essential libpq-dev

COPY Gemfile Gemfile.lock ./
RUN bundle install --without development test

COPY . .

RUN bundle exec rake assets:precompile

EXPOSE 3000

CMD ["bundle", "exec", "puma", "-p", "3000", "-e", "production"]

Deploy com Buildpack

Se o seu repositorio nao contiver um Dockerfile, a Guara Cloud detecta automaticamente seu projeto Ruby pela presenca de um Gemfile.

A deteccao automatica vai:

  1. Detectar a versao do Ruby pelo Gemfile ou .ruby-version
  2. Executar bundle install
  3. Detectar aplicacoes Rails automaticamente, habilitando jemalloc e bootsnap para performance otimizada
  4. Pre-compilar o asset pipeline se uma aplicacao Rails for detectada
  5. Configurar automaticamente o Puma como servidor da aplicacao

Configuracao de porta

Sua aplicacao deve escutar na porta configurada nas configuracoes do servico. O padrao e 3000, mas voce pode altera-lo a qualquer momento para corresponder a sua aplicacao.

port = ENV['PORT'] || 3000

Para Puma, configure em config/puma.rb:

port ENV.fetch('PORT') { 3000 }

Estrutura de projeto exemplo

my-rails-app/
  Gemfile
  Gemfile.lock
  Procfile
  config.ru
  app/
    controllers/
    models/
    views/
  config/
    puma.rb
  Dockerfile          # opcional — omita para usar Buildpack

Variaveis de ambiente

Estas variaveis de ambiente sao comumente usadas em deploys Ruby:

VariavelValor recomendadoDescricao
RAILS_ENVproductionDefine o ambiente do Rails
RACK_ENVproductionDefine o ambiente Rack para apps nao-Rails
PORTDefinido pela plataformaA porta na qual sua aplicacao deve escutar
SECRET_KEY_BASESeu secretNecessario pelo Rails para cookies e sessoes criptografadas
RAILS_LOG_TO_STDOUTenabledEnvia logs do Rails para stdout para visibilidade

Erros comuns