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:
- 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. - Os comandos usam
rakeebundle, mas pode adaptá-los conforme as necessidades da sua aplicação. - 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á:
- Pré-compilar os assets como JavaScript e CSS para o diretório
public/assets. - Executar as migrações de base de dados necessárias.
- Iniciar o servidor Puma para servir a sua aplicação.