Python: Criar um Makefile para a implementação na Stackhero

Esta documentação faz parte do guia Implementar em produção. Consulte o guia completo aqui: Como implementar o seu código Python em produção em poucos minutos.

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

A Stackhero disponibiliza uma solução Python cloud pronta a usar, concebida para simplificar o seu processo de deployment:

  • Implemente a sua aplicação em produção em segundos com um simples git push.
  • Utilize o seu próprio domínio, com configuração automática de certificado HTTPS para ligações seguras geridas por si.
  • Conte com backups automáticos, atualizações com um clique e preços previsíveis, para que se possa focar no seu código e não na gestão da infraestrutura.
  • Beneficie de elevada performance e segurança numa infraestrutura privada e dedicada. O seu ambiente está isolado e protegido.

Poupe tempo e simplifique o seu workflow: pode ter o seu código a funcionar com o alojamento Python cloud da Stackhero em apenas 5 minutos.

Para indicar à Stackhero como executar a sua aplicação, utilize um Makefile na raiz do seu projeto.

Se não está familiarizado com ficheiros Makefile e o comando make, não se preocupe. Basta seguir estas instruções para começar.

Crie um ficheiro Makefile na raiz do seu projeto com o seguinte conteúdo:

run:
	gunicorn app:app -b 0.0.0.0:8080 --error-logfile -

Há alguns pontos importantes a ter em conta neste Makefile:

  1. A regra run é obrigatória, pois a Stackhero executa-a automaticamente. Não a renomeie.
  2. O comando gunicorn app:app -b 0.0.0.0:8080 --error-logfile - é apenas um exemplo. Certifique-se de o ajustar às necessidades da sua aplicação.
  3. Certifique-se de que inicia o comando gunicorn com um carácter de tabulação. Se vir um erro como "*** missing separator", significa que falta a tabulação.

Neste exemplo, o Gunicorn é utilizado para servir a sua aplicação (certifique-se de que está listado no seu requirements.txt). O argumento -b 0.0.0.0:8080 indica que escuta em todas as interfaces na porta 8080. Se escolher outra porta, terá também de atualizar a configuração do seu serviço Python no dashboard Stackhero. A parte app:app refere-se ao objeto app dentro do seu ficheiro app.py.