Ruby: Criar um Makefile para deploy na Stackhero

Esta documentação faz parte do guia Fazer deploy em produção. Consulte o guia completo aqui: Como fazer deploy do seu código Ruby em produção em poucos minutos.

👋 Bem-vindo à documentação da Stackhero!

A Stackhero disponibiliza uma solução Ruby cloud pronta a usar, que oferece várias vantagens, incluindo:

  • Implemente a sua aplicação em segundos com um simples git push.
  • Utilize o seu próprio nome de domínio e beneficie da configuração automática de certificados HTTPS para maior segurança.
  • Desfrute de backups automáticos, atualizações com um clique e uma estrutura de preços simples, transparente e previsível.
  • Obtenha performance otimizada e segurança reforçada graças a uma infraestrutura privada e dedicada.

Poupe tempo e simplifique a sua vida: bastam 5 minutos para experimentar a solução de Ruby cloud hosting da Stackhero!

Para indicar à Stackhero como executar a sua aplicação, deve criar um ficheiro Makefile na raiz do seu projeto. Este ficheiro define os comandos que a Stackhero irá utilizar durante o deploy.

Se nunca trabalhou com Makefiles ou com o comando make, não se preocupe, os passos abaixo irão guiá-lo em todo o processo.

Crie um ficheiro Makefile com o seguinte conteúdo:

run:
	rake assets:precompile
	rake db:migrate RAILS_ENV=production
	RAILS_ENV=production bundle exec puma -C config/puma.rb

O que acontece neste Makefile:

  1. A regra run é obrigatória; a Stackhero irá executá-la automaticamente durante o deploy. Por favor, mantenha este nome, pois serve como ponto de entrada.
  2. Os comandos usam rake e bundle, mas pode adaptá-los conforme as necessidades da sua aplicação.
  3. Certifique-se de que cada linha de comando começa com um carácter de tabulação, e não com espaços. Se vir um erro como *** missing separator, verifique este detalhe no ficheiro.

No exemplo acima, o deploy irá:

  1. Pré-compilar os assets como JavaScript e CSS para o diretório public/assets.
  2. Executar as migrações de base de dados necessárias.
  3. Iniciar o servidor Puma para servir a sua aplicação.