On Minikube
Run Kaniko locally on Minikube
brew install minikube
minikube start
#!/usr/bin/env bash
DOCKER_USERNAME=[DOCKER HUB USER NAME]
DOCKER_PASSWORD=[DOCKER HUB PASSWORD]
minikube ssh '
mkdir -p kaniko && cd kaniko
echo FROM ubuntu > dockerfile
echo ENTRYPOINT ''["/bin/bash", "-c", "echo hello"]'' >> dockerfile
cat dockerfile
'
DIR=`minikube ssh 'cd kaniko && pwd'`
cat <<EOF > volume.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: dockerfile
labels:
type: local
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
storageClassName: local-storage
hostPath:
path: $DIR
EOF
cat <<EOF > volume-claim.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: dockerfile-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 8Gi
storageClassName: local-storage
EOF
cat <<EOF > pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: kaniko
spec:
containers:
- name: kaniko
image: gcr.io/kaniko-project/executor:latest
args: ["--dockerfile=/workspace/dockerfile",
"--context=dir://workspace",
"--destination=$DOCKER_USERNAME/testing"]
volumeMounts:
- name: kaniko-secret
mountPath: /kaniko/.docker
- name: dockerfile-storage
mountPath: /workspace
restartPolicy: Never
volumes:
- name: kaniko-secret
secret:
secretName: regcred
items:
- key: .dockerconfigjson
path: config.json
- name: dockerfile-storage
persistentVolumeClaim:
claimName: dockerfile-claim
EOF
kubectl create secret docker-registry regcred \
--docker-server=https://index.docker.io/v1/ \
--docker-username=$DOCKER_USERNAME \
--docker-password=$DOCKER_PASSWORD \
--docker-email=andycowan@gmail.com
kubectl create -f volume.yaml
kubectl create -f volume-claim.yaml
kubectl create -f pod.yaml
sleep 10
kubectl logs kaniko
#!/usr/bin/env bash
kubectl delete -f pod.yaml
kubectl delete -f volume-claim.yaml
kubectl delete -f volume.yaml
kubectl delete secret regcred
rm *yaml