Docker: Utilizzi avanzati dei contesti
Come utilizzare i contesti Docker nei tuoi script
👋 Benvenuti nella documentazione di Stackhero!
Stackhero offre una soluzione Docker cloud CaaS (Containers as a Service) pronta all'uso che fornisce numerosi vantaggi, tra cui:
- Distribuisci facilmente i tuoi container in produzione con un semplice
docker-compose up.- Nome di dominio personalizzabile protetto con HTTPS (ad esempio, https://api.tua-azienda.com, https://www.tua-azienda.com, https://backoffice.tua-azienda.com).
- Prestazioni ottimali e sicurezza robusta grazie a una VM privata e dedicata.
- Aggiornamenti senza sforzo con un solo clic.
Risparmia tempo e semplifica la tua vita: bastano 5 minuti per provare la soluzione di hosting cloud Docker CaaS di Stackhero e distribuire i tuoi container in produzione!
Lavorare con i comandi Docker context use è ottimo per eseguire comandi manualmente. Tuttavia, quando si utilizzano script, esistono metodi alternativi più adatti che semplificano il processo. Invece di invocare direttamente il comando, è possibile impostare il contesto desiderato utilizzando la variabile d'ambiente DOCKER_CONTEXT. Questo approccio si integra perfettamente nei flussi di lavoro degli script e mantiene la chiarezza della configurazione.
Negli esempi forniti, sostituire
<XXXXXX>.stackhero-network.comcon il dominio specifico della tua istanza Docker (<XXXXXX>.stackhero-network.com).
Gestione dei contesti Docker negli script bash
Ecco un esempio di come impostare il contesto Docker all'interno di uno script bash:
#!/bin/bash
set -e
DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
echo "IP da Docker per l'istanza Stackhero:"
docker run --rm alpine wget -q -O - ifconfig.me
Impostando la variabile d'ambiente DOCKER_CONTEXT, è possibile gestire comodamente il contesto attivo direttamente nei tuoi script.
Esternalizzazione della configurazione con un file .env
Per evitare di codificare direttamente il valore di DOCKER_CONTEXT, è possibile caricarlo da un file .env. Questo metodo mantiene organizzate le impostazioni dell'ambiente e facilita le modifiche:
#!/bin/bash
set -e
source .env
echo "IP da Docker per l'istanza Stackhero:"
docker run --rm alpine wget -q -O - ifconfig.me
Crea un file .env con il seguente contenuto:
DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
Utilizzo dei contesti Docker nei Makefile
È possibile anche impostare la variabile DOCKER_CONTEXT in un Makefile. Ecco un esempio di esportazione della variabile ed esecuzione di un container Docker:
# Makefile
export DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
getIp:
docker run --rm alpine wget -q -O - ifconfig.me
Dopo aver creato il Makefile, invoca il comando utilizzando:
make getIp
Se si verifica l'errore
Makefile: *** missing separator. Stop., assicurarsi che la lineadocker run [...]inizi con un carattere TAB, non con spazi.
Sfruttare i file .env nei Makefile
È possibile semplificare ulteriormente la configurazione includendo un file .env nel Makefile. Questo approccio garantisce una gestione centralizzata delle impostazioni dell'ambiente:
# Makefile
include .env
export
getIp:
docker run --rm alpine wget -q -O - ifconfig.me
Crea un file .env con questo contenuto:
DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com
Quindi eseguire il comando:
make getIp
Se si verifica l'errore
Makefile: *** missing separator. Stop., verificare che la lineadocker run [...]inizi con un carattere TAB anziché con spazi.