Gemfile
Guia completo do Gemfile para bots Ruby e aplicações web (site/API) na Discloud.
🗂️ O que é Gemfile
?
Gemfile
?Gemfile
lista as gems (bibliotecas) que sua aplicação Ruby precisa. A Discloud usa o Bundler durante o deploy para instalá-las antes de iniciar sua aplicação.
🛠️ Criando um Gemfile
(Início Rápido)
Gemfile
(Início Rápido)1
Inicialize o Bundler em uma pasta vazia:
bundle init
Isso cria um Gemfile
inicial.
2
Adicione dependências diretamente via Bundler:
bundle add sinatra
bundle add puma
3
Instale (respeitando o Gemfile):
bundle install
🧪 Grupos de Ambiente
group :development, :test do
gem 'pry'
gem 'rspec'
end
group :production do
# gems apenas para produção (APM, backends de logging, etc.)
end
Pule a instalação de grupos dev/test no momento do deploy se desejado:
bundle install --without development test
🧩 Exemplos de Gemfiles
source 'https://rubygems.org'
ruby '3.2.2'
gem 'rails', '~> 7.0.0'
gem 'puma', '~> 5.0'
gem 'pg', '~> 1.1' # ou 'sqlite3' para uso simples/local
gem 'bootsnap', '>= 1.4.4', require: false
group :development, :test do
gem 'pry'
gem 'rspec-rails'
end
group :production do
# monitoramento / cache / etc.
end
gem 'bundler', '~> 2.4'
🧾 Exemplo de config.ru
(Site Sinatra / Rack)
config.ru
(Site Sinatra / Rack)require 'bundler/setup'
require 'sinatra'
require 'dotenv/load' if ENV['RACK_ENV'] != 'production'
set :bind, '0.0.0.0'
set :port, (ENV['PORT'] || 8080)
get '/' do
'Olá do app Sinatra na Discloud!'
end
run Sinatra::Application
Para bots, você normalmente NÃO precisa de config.ru
; em vez disso, apenas aponte MAIN
no discloud.config
para sua entrada Ruby (ex.: bot.rb
).
🧪 Atualizando Dependências
# Atualize uma única gem
bundle update puma
# Atualize todas (cuidado – pode introduzir mudanças incompatíveis)
bundle update
# Veja gems desatualizadas
bundle outdated
Patches de segurança: monitore avisos (ex.: RubySec / Dependabot) e agende bundle update --patch
periodicamente.
🧰 Referência de Comandos Comuns
# Inicializar Gemfile
bundle init
# Adicionar gem (escreve no Gemfile & instala)
bundle add <gem>
# Instalar apenas com grupos de produção
bundle install --without development test
# Verificar problemas no gráfico de dependências
bundle check
# Limpar gems não utilizadas (após prune)
bundle clean --force
Last updated