Docker: Utilização de contextos Docker em Makefiles

Esta documentação faz parte do guia Usos avançados de contextos. Consulte o guia completo aqui: Como usar contextos Docker nos seus scripts.

Bem-vindo à documentação da Stackhero

A Stackhero disponibiliza uma plataforma Docker cloud CaaS (Containers as a Service) pronta a usar, concebida para implementações de contentores rápidas e fiáveis:

  • Implemente em produção com um simples docker-compose up. Não é necessária qualquer configuração adicional: basta iniciar os seus contentores.
  • Escolha o seu próprio nome de domínio, automaticamente protegido com HTTPS (por exemplo: https://api.sua-empresa.com, https://www.sua-empresa.com ou https://backoffice.sua-empresa.com).
  • Beneficie de elevado desempenho e segurança robusta numa infraestrutura privada e dedicada.
  • Aplique atualizações com um clique para uma manutenção simples e sem esforço.

Pode ter os seus contentores em produção em cerca de cinco minutos. A Stackhero gere a infraestrutura, as atualizações e a segurança por si, para que se possa focar na entrega das suas aplicações. Saiba mais sobre alojamento cloud Docker CaaS.

Também pode definir a variável DOCKER_CONTEXT num Makefile. Aqui está um exemplo de exportação da variável e execução de um contêiner Docker:

# Makefile
export DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

getIp:
	docker run --rm alpine wget -q -O - ifconfig.me

Após criar o Makefile, invoque o comando usando:

make getIp

Se encontrar o erro Makefile: *** missing separator. Stop., certifique-se de que a linha docker run [...] começa com um carácter TAB, não espaços.

Pode simplificar ainda mais a configuração incluindo um ficheiro .env no seu Makefile. Esta abordagem garante uma gestão centralizada das suas definições de ambiente:

# Makefile
include .env
export

getIp:
	docker run --rm alpine wget -q -O - ifconfig.me

Crie um ficheiro .env com este conteúdo:

DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

Depois execute o comando:

make getIp

Se encontrar o erro Makefile: *** missing separator. Stop., verifique se a linha docker run [...] começa com um carácter TAB em vez de espaços.