Ensuite pour que buildx soit le builder par défaut:
docker buildx install
et pour désinstaller
docker buildx uninstall
Pour fonctionner avec docker-compose, la première version compatible est la 1.25.0 avec son flag COMPOSE_DOCKER_CLI_BUILD=1 permettant d’utiliser directement la commande docker à la place de bibliothèque docker_py.
exemple de commande:
COMPOSE_DOCKER_CLI_BUILD=1 docker-compose build
ou exporter la variable COMPOSE_DOCKER_CLI_BUILD au préalable.
On peut lire un peu partout qu’il n’est pas possible d’utiliser Let’s Encrypt sur son réseau privé. Cette assertion est trop rapide. C’est compliqué, pas supporté par défaut, mais amplement faisable.
Une solution consiste à utiliser les fonctions de challenge DNS de Let’s Encrypt et de récupérer et installer en local ces certificats.
Si l’on souhaite cacher l’architecture interne de notre infrastructure (sans la déclarer dans dans un dns public), il suffit simplement d’utiliser un wildcard de sous-domaine.
Le flux d’action, réseau privé / internet, est le suivant:
Pour fonctionner, cette procédure nécessite un serveur DNS public avec une api permettant de mettre à jour vos enregistrement DNS. Vous trouverez de tels services auprès par exemple de DigitalOcean, Namecheap.
Exemple avec un serveur DNS namecheap
dans un répertoire de votre serveur possédant docker (ou directement avec certbot et python), par exemple /data/certs
docker-compose run certbot-dns-namecheap certonly \
--non-interactive -a certbot-dns-namecheap:dns-namecheap \
--certbot-dns-namecheap:dns-namecheap-credentials=/namecheap.ini \
--agree-tos \
--email "[email protected]" \
-d *.mondomain.com
les certificats se trouvent dans /data/certs/certbot_dns_namecheap/out/certs/live/mondomain.com/
listes des certificats Let’s Encrypt certbot
docker-compose run certbot-dns-namecheap certificates
renouvellement des certificats Let’s Encrypt certbot
Les certificats Let’s Encrypt ont une durée de validité courte, il vous faut les renouveler périodiquement.
docker-compose run certbot-dns-namecheap renew --force-renewal
dans un crontab ajouter -T en option pour éviter les problèmes. ex: docker-compose run -T …etc
Ensuite, à vous de configurer ou transférer (avec rsync, etcd ou consul par exemple) ces certificats ou bon vous semble.
Exemple – Lier Ingress avec ces certificats
Ci-après, un exemple d’utilisation pour un cluster Kubernetes avec une sur couche Rancher 2. Ingress va automatiquement utiliser vos certificats générés pour vos services exposés sur votre infrastructure.
Première étape, créer le secret contenant les certificats pour ingress.
Pour information, l’api de Namecheap est disponible uniquement sur demande et sous condition d’avoir beaucoup de leur produit, mais à l’énorme avantage d’être compatible avec des domaines plus exotique, … comme les domaines islandais.
Peut-être vous arrive-t’il de copier-coller des lignes de commande dans une console linux, de l’exécuter, de vouloir la relancer et de ne pas la trouver dans l’historique ?
La raison est simple, par défaut sous linux bash ignore les commandes en double et les commandes commençant par des espaces. Ce comportement est paramétrable avec la variable d’environnement HISTCONTROL.
Pour information, cette variable est vide sous macos.
Vérifier votre paramétrage :
$ echo $HISTCONTROL
ignoredups:ignorespace
ignoredups: ignore les commandes dupliquées
ignorespace: ignore les commandes commençant par des espaces.
la solution:
$ export HISTCONTROL=ignoredups
ajouter cette ligne à votre .bashrc ou au niveau système /etc/bash.bashrc pour rendre ce réglage permanent.
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
Fonctionnel
Toujours activé
Le stockage ou l’accès technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’internaute, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
Le stockage ou l’accès technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou la personne utilisant le service.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques.Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
Le stockage ou l’accès technique est nécessaire pour créer des profils d’internautes afin d’envoyer des publicités, ou pour suivre l’internaute sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.