DevOps Fortgeschritten
Kaniko — Docker-Build ohne Docker¶
KanikoDockerKubernetesCI/CD 5 min Lesezeit
Kaniko ermöglicht das Erstellen von Docker-Images in Kubernetes ohne Docker-Daemon. Sichere CI/CD in Containern.
Warum Kaniko¶
Docker-in-Docker erfordert den privilegierten Modus — ein Sicherheitsrisiko. Kaniko baut Images im Userspace ohne Daemon.
- Kein Docker-Daemon
- Kein privilegierter Modus
- Läuft als normaler Container in K8s
- Kompatibel mit den meisten Dockerfile-Anweisungen
Kubernetes-Job¶
apiVersion: batch/v1
kind: Job
metadata:
name: kaniko-build
spec:
template:
spec:
containers:
- name: kaniko
image: gcr.io/kaniko-project/executor:latest
args:
- --dockerfile=Dockerfile
- --context=git://github.com/org/app.git#refs/heads/main
- --destination=registry.example.com/app:v1.2.3
- --cache=true
- --cache-repo=registry.example.com/app/cache
volumeMounts:
- name: docker-config
mountPath: /kaniko/.docker
volumes:
- name: docker-config
secret:
secretName: regcred
items:
- key: .dockerconfigjson
path: config.json
restartPolicy: Never
GitLab-CI-Integration¶
build:
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- |
/kaniko/executor \
--context $CI_PROJECT_DIR \
--dockerfile $CI_PROJECT_DIR/Dockerfile \
--destination $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG \
--cache=true
Zusammenfassung¶
Kaniko ist eine sichere Alternative zu Docker-in-Docker für CI/CD in Kubernetes. Kein privilegierter Modus, kein Daemon.
Brauchen Sie Hilfe bei der Implementierung?¶
Unser Team hat Erfahrung mit dem Entwurf und der Implementierung moderner Architekturen. Wir helfen Ihnen gerne.