Go to file
Danny Bessems a76ce91c25
Some checks failed
continuous-integration/drone/push Build is failing
Update 'Dockerfile'
2020-08-17 14:34:20 +00:00
init Update 'init/entrypoint.sh' 2020-04-02 08:08:12 +00:00
.drone.yml Update '.drone.yml' 2020-08-17 14:21:31 +00:00
Dockerfile Update 'Dockerfile' 2020-08-17 14:34:20 +00:00
README.md Update 'README.md' 2020-02-19 15:11:25 +00:00

Docker.Containers.GitSparseClone Build Status

Useful as a Kubernetes sidecar Container that downloads specific files from a git-repository (sparse clone) to a Kubernetes volumeMount, which other containers in the same Pod can then also mount and use.

Build:

docker build -t gitsparseclone .

Usage:

Create a deployment-with-sidecar.yml with the following contents:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment-with-sidecar
  labels:
    app: deployment-with-sidecar
spec:
  replicas: 1
  selector:
    matchLabels:
      app: deployment-with-sidecar
  template:
    metadata:
      labels:
        app: deployment-with-sidecar
    spec:
      containers:
        - name: main
          image: <<name of your main-container image>>
          volumeMounts:
            - name: files
              readOnly: true
              mountPath: "/mnt/files"
        - name: sidecar
          image: djpbessems/gitsparseclone
          env:
            - name: SPARSE_CHECKOUT
              value: |-
                specific/folder/in/repository/*
                another/folder/in/repository/*
            - name: REMOTE_REPO
              value: <<fqdn of your git repository>
            - name: REMOTE_BRANCH
              value: <<branch of your git repository>>
            - name: TARGET_DIR
              value: /mnt/files
# Optional
            - name: http_proxy
              value: <<fqdn of your proxy>>
# Optional
            - name: https_proxy
              value: <<fqdn of your proxy>>
          volumeMounts:
            - name: files
              mountPath: "/mnt/files"
      volumes:
        - name: files
          emptyDir: {}

Then deploy to Kubernetes: kubectl apply -f deployment-with-sidecar.yml