Init Containers — run-to-completion containers that execute before the main containers start.
1apiVersion: apps/v12kind: Deployment3metadata:4 name: myapp5spec:6 replicas: 17 template:8 spec:9 initContainers:10 - name: wait-for-db11 image: busybox:1.3612 command: ["sh", "-c", "until nc -z postgres-service 5432; do sleep 2; done"]13 - name: init-migrations14 image: myapp:latest15 command: ["python", "manage.py", "migrate"]16 env:17 - name: DATABASE_URL18 valueFrom:19 secretKeyRef:20 name: db-secret21 key: url22 - name: load-config23 image: busybox:1.3624 command:25 - sh26 - -c27 - |-28 wget -O /config/app.conf https://config-server/app.conf29 echo "Config loaded"30 volumeMounts:31 - name: config32 mountPath: /config33 containers:34 - name: app35 image: myapp:latest36 volumeMounts:37 - name: config38 mountPath: /config39 volumes:40 - name: config41 emptyDir: {}
Use cases:
Behavior: