Archives de catégorie : docker

Synology – mise à jour de docker-compose

Par défaut les NAS Synology DSM 7 sont livrés avec docker et docker-compose.

Cependant la version de docker-compose est assez ancienne en version 1.xx alors que nous sommes déjà en version 2.13.

Bref, pour faire simple, le mieux est de rajouter dans votre PATH utilisateur, un répertoire et de mettre une version à jour de docker-compose.

Pratique

connectez-vous en ssh sur le nas avec un compte qui peut utiliser docker.

faites un test:

docker-compose -v
docker ps

allez dans votre HOME, => cd

Remarques: faîtes bien le cd , le bash synology DSM7.1 a un problème sur le répertoire par défaut à la connexion.

créez un répertoire bin à la racine de votre HOME dans lequel vous mettrez tous vos binaires.

mkdir bin
nano .bashrc

ajouter:

export PATH="/volume1/homes/monhome/bin:$PATH"

puis appliquer les modifications à la session courante:

source .bashrc

enfin dans le répertoire bin:

cd bin
curl -L https://github.com/docker/compose/releases/download/v2.13.0/docker-compose-`uname -s`-`uname -m` -o docker-compose

changer la version par la dernière présente sur https://github.com/docker/compose/releases/

faites un test:

docker-compose -v

Rancher 2.6 et docker-compose

En complément de Certificat Let’s Encrypt sur réseau local qui montre comment centraliser une génération privée de certificat, pour Kubernetes, voici un article sur comment monter un homelab simplement avec Rancher et docker-compose.

+

Docker-compose vs Kubernetes

Pourquoi Docker-compose plutôt que Kubernetes? Pour une question de ressource.

Rancher est très gourmand si en plus vous rajoutez Kubernetes votre micro serveur ou raspberry pi va tomber. il faudra déjà compter minimum 2 cpu et 4go de ram.

Enfin, c’est du test, donc du jetable.

Comment

Ci-dessous un docker-compose.yml reprenant l’exercice.

Vous y trouverez:

  • Traefik en tant que gateway et générateur de certificat ssl DNS-01 avec ici le provider Namecheap
  • Rancher en version stable
  • whoami pour tester la génération de certificat

Détails

Il y a plusieurs subtilités,

Rancher 2 impose le ssl à son niveau, donc vous devez pouvoir faire:

Browser ↔️ ssl let’s encrypt ↔️ Traefik ↔️ ssl (let’s encrypt ou pas) ↔️ rancher

Dans notre cas, avec docker-compose avec Traefik et sans accès public au serveur seul un certificat auto-signé au niveau rancher est possible. Il faut donc passer à –serverstransport.insecureskipverify=true.

Et enfin toute la partie label permettant de faire du proxy passthrough.

Tips

     profiles:
      - donotstart

Permet de gérer des profiles d’execution dans docker-compose, dans notre cas il nous permet surtout de ne pas executer directement whoami, de l’ignorer.

 restart: always

Attention, L’option restart ne marche que avec l’executable docker-compose (ici en 2.12), pas avec le plugin docker.

Docker buildx configuration unix

Buildx et BuildKit apportent beaucoup en rapidité de génération d’image docker.

Voici un petit guide pour activer Buildx par défaut.

éditer votre daemon.json et relancer docker

{
"experimental" : true,
"debug" : true,
"features" : {
  "buildkit" : true
 }
}

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.