Full-stack Dev @ Toptal
Plataforma líder mundial em "software containerization".
Empacota sua aplicação em um container fechado, pronto para ser usado em qualquer plataforma com suporte.
Ideal para ambiente de desenvolvimento. Ideal também para produção.
Comunidade ativa e desenvolvimento contínuo. Já suportado pelos maiores hosts do mundo.
Dev
Teste local
QA/staging
Produção
Production-like
Fast
Repeatable
Dev
Teste local
Produção
Teste local
Produção
QA/staging
QA/staging
Aplicação Rails
Rails app
Postgres
Redis
Redis
Rails app
Postgres
# O Ruby de sua preferência, de uma fonte oficial e minimalista
FROM ruby:2.3.1-slim
# Instala pacotes essenciais do Linux
RUN apt-get update -qq
RUN apt-get install -y build-essential libpq-dev postgresql-client git nodejs
# Define onde o app irá "viver" dentro da imagem
ENV RAILS_ROOT /var/www/app
# Cria a home do app. O server também vai precisar de uma pasta para os pids
RUN mkdir -p $RAILS_ROOT/tmp/pids
# Change Directory para a raiz do app
WORKDIR $RAILS_ROOT
# Importa o Gemfile para poder rodar o próximo comando
ADD Gemfile Gemfile
ADD Gemfile.lock Gemfile.lock
# Instala o Bundler
RUN gem install bundler
# Último passo para gerar a imagem
RUN bundle installRails app
Precisamos de uma imagem customizada:
Rails app
http://localhost:3000
Postgres
http://localhost:5432
Redis
http://localhost:6379
Text