Docker: Usos avançados de contextos
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.
Trabalhar com comandos Docker context use é ótimo para executar comandos manualmente. Mas ao usar scripts, existem métodos alternativos melhores que simplificam o processo. Em vez de invocar diretamente o comando, pode definir o contexto desejado usando a variável de ambiente DOCKER_CONTEXT. Esta abordagem integra-se perfeitamente nos fluxos de trabalho de scripts e mantém a clareza da configuração.
Nos exemplos fornecidos, substitua
<XXXXXX>.stackhero-network.compelo domínio específico da sua instância Docker (<XXXXXX>.stackhero-network.com).
Gestão de contextos Docker em scripts bash
Aqui está um exemplo de como definir o contexto Docker dentro de um script bash:
#!/bin/bash
set -e
DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
echo "IP do Docker para a instância Stackhero:"
docker run --rm alpine wget -q -O - ifconfig.me
Ao definir a variável de ambiente DOCKER_CONTEXT, pode gerir convenientemente o contexto ativo diretamente nos seus scripts.
Externalização da configuração com um ficheiro .env
Para evitar codificar o DOCKER_CONTEXT, pode carregar o seu valor a partir de um ficheiro .env. Este método mantém as definições de ambiente organizadas e facilita ajustes:
#!/bin/bash
set -e
source .env
echo "IP do Docker para a instância Stackhero:"
docker run --rm alpine wget -q -O - ifconfig.me
Crie um ficheiro .env com o seguinte conteúdo:
DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
Utilização de contextos Docker em Makefiles
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 linhadocker run [...]começa com um carácter TAB, não espaços.
Aproveitamento de ficheiros .env em Makefiles
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 linhadocker run [...]começa com um carácter TAB em vez de espaços.