Aller au contenu principal

Build une image docker sur un cluster kubernetes

Pour build une image sur un cluster Kubernetes, j'ai trouvé la solution de Kaniko. Il permet de lancer un build à partir d'un manifest YAML tout comme on aurait lancé un pod ou un déploiement.

Voici le manifest à déployer pour créer ce blog :

apiVersion: v1
kind: Pod
metadata:
name: kaniko-demo
spec:
containers:
- name: kaniko-demo
image: gcr.io/kaniko-project/executor:latest
args: ["--context=git://git.thoughtless.eu/Cinabre/TheBidouilleur-kubernetes",
"--destination=thoughtlesshub/thebidouilleur:kaniko",
"--dockerfile=Dockerfile"]
volumeMounts:
- name: kaniko-secret
mountPath: /kaniko/.docker
restartPolicy: Never
volumes:
- name: kaniko-secret
secret:
secretName: reg-credentials
items:
- key: .dockerconfigjson
path: config.json

Pour push l'image, vous aurez surement besoin d'identifiants (Dockerhub, ou registre exposé sur Internet), je vous invite à lire cette page qui vous présentera comment utiliser un registre privé dans Kubernetes.

Secret :

kubectl create secret docker-registry reg-credentials --docker-server=https://index.docker.io/v1/ --docker-username=xx --docker-password=xxxx --docker-email=xx