apiVersion: batch/v1 kind: Job metadata: name: mpd-build namespace: media spec: ttlSecondsAfterFinished: 3600 template: spec: restartPolicy: Never initContainers: - name: prepare-context image: alpine/git:latest command: - sh - -c - | mkdir -p /workspace/mpd # We'll copy the files directly since they're in the ConfigMap echo "Build context prepared" volumeMounts: - name: workspace mountPath: /workspace containers: - name: kaniko image: gcr.io/kaniko-project/executor:latest args: - "--dockerfile=/workspace/mpd/Dockerfile" - "--context=/workspace/mpd" - "--destination=images.caffeinetux.com/apps/mpd:latest" - "--destination=images.caffeinetux.com/apps/mpd:alpine-3.21" - "--cache=true" - "--cache-repo=images.caffeinetux.com/apps/mpd/cache" volumeMounts: - name: workspace mountPath: /workspace - name: docker-config mountPath: /kaniko/.docker - name: dockerfile mountPath: /workspace/mpd/Dockerfile subPath: Dockerfile - name: mpd-config mountPath: /workspace/mpd/mpd.conf subPath: mpd.conf volumes: - name: workspace emptyDir: {} - name: docker-config secret: secretName: harbor-registry items: - key: .dockerconfigjson path: config.json - name: dockerfile configMap: name: mpd-build-files - name: mpd-config configMap: name: mpd-build-files