Docker: Usos avançados de contextos

Como usar contextos Docker nos seus scripts

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

A Stackhero oferece uma solução Docker cloud CaaS (Containers as a Service) pronta a usar que proporciona uma série de benefícios, incluindo:

  • Implemente facilmente os seus containers em produção com apenas um docker-compose up.
  • Nome de domínio personalizável seguro com HTTPS (por exemplo, https://api.sua-empresa.com, https://www.sua-empresa.com, https://backoffice.sua-empresa.com).
  • Desempenho ótimo e segurança robusta alimentados por uma VM privada e dedicada.
  • Atualizações sem esforço com apenas um clique.

Poupe tempo e simplifique a sua vida: são necessários apenas 5 minutos para experimentar a solução de hospedagem cloud Docker CaaS da Stackhero e implementar os seus containers em produção!

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.com pelo domínio específico da sua instância Docker (<XXXXXX>.stackhero-network.com).

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.

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

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.