8000 GitHub - jdolitsky/git: A distroless image containing only git and related utilities.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

jdolitsky/git

 
 

Repository files navigation

git

CI status

This is a minimal Git image based on Alpine, using up-to-date apks available on the Alpine Community repositories (not built from source). The image contains git, git-lfs, and supporting libraries such as openssh (for ssh-based auth), and ca-certs (for https-based cloning).

Get It!

The image is available on cgr.dev:

docker pull cgr.dev/chainguard/git:latest

Supported tags

Tag Digest Arch
2.38.0-r1 sha256:69c9f045a42fa3e8d60b4d88642050de653bb51f967f162d4a66accada026103
View entry in Rekor
386 amd64 arm64 armv6 armv7 ppc64le riscv64 s390x
2.37.3-r0-root-glibc sha256:c4f4c1f59f269485bcfd28a3c71a4cd3745ac9e72f4090988f4b2810a385a629
View entry in Rekor
amd64
2 2-debian-11 2.38.0 2.38.0-debian-11-r2 2.38.0-debian-11-r3 sha256:79aa1b7df6773d4722dca35908903cd86dacd5d4a10656017ce8c227d9c91db3
View entry in Rekor
386 amd64 arm64 armv6 armv7 ppc64le riscv64 s390x
2.37.3-r0-glibc sha256:80de6d31ad4d06caf1091892c7df0c181afffe80809c84ce9f562a16634752de
View entry in Rekor
amd64
2.37.3-r1 sha256:0383d919339f5095c7c81f513cab6523e2fd323d5a524fbef3a89144d117238c
View entry in Rekor
386 amd64 arm64 armv6 armv7 ppc64le riscv64 s390x
2.38.1-r0 root sha256:c6be2fb936d1d7470dfb2d55c69cf7ab2c059624b57c1d83f4b368ea20ca0186
View entry in Rekor
386 amd64 arm64 armv6 armv7 ppc64le riscv64 s390x
2.38.1-r0-glibc sha256:f26f78bb25eb2c83a8e316b75929af9c30bb53a 8000 8dd960ddecfa764a1c331892c
View entry in Rekor
amd64
2.38.1-r0-root-glibc sha256:60152eaa80075d4ef23c9becc73ce6507f3df58baa4aedf8030c843a4e47b45e
View entry in Rekor
amd64
2.37.3-debian-11-r8 2.37.3-r0 sha256:09768f17d6ce9eced953fe8e87d88c8097f867ac487d99048565fc42def493f3
View entry in Rekor
386 amd64 arm64 armv6 armv7 ppc64le riscv64 s390x
2.37.3 2.37.3-debian-11-r9 sha256:34a5718f96c5747b52e0cb5f217a2441be29f425ede41e946b6ec646507221e2
View entry in Rekor
386 amd64 arm64 armv6 armv7 ppc64le riscv64 s390x
2.37.3-debian-11-r5 sha256:5bd9e1bc50745c14199118e2a393a39e54d615444c91c6f09c3763ec8169d129
View entry in Rekor
386 amd64 arm64 armv6 armv7 ppc64le riscv64 s390x
2.37.3-debian-11-r6 sha256:fdede9d61b563ccb0a378233218a0040d24b4a97e0418d736708caa8394c7f55
View entry in Rekor
386 amd64 arm64 armv6 armv7 ppc64le riscv64 s390x
2.37.3-debian-11-r7 sha256:fecf20ec858defbd6577b95d50e072a3836d8f390e7955a8e9801444c75ca75f
View entry in Rekor
386 amd64 arm64 armv6 armv7 ppc64le riscv64 s390x
latest sha256:7d1c0c05ff33f7887a17f1ef41ecb5dff6f3621aa3eb765ba30e8ae748feeb82
View entry in Rekor
386 amd64 arm64 armv6 armv7 ppc64le riscv64 s390x

Usage

The Git image allows you to run ordinary Git commands in CI/CD pipelines and also locally via Docker.

Docker Setup

To make sure you have the latest image version available, start by running a docker pull command:

docker pull cgr.dev/chainguard/git

Then, run the image with the --version flag to make sure it is functional:

docker run -it --rm cgr.dev/chainguard/git --version

You should get output similar to this:

git version 2.37.1

Cloning a Repository Locally

Because your local system user's ID (uid) might differ from that of the container image, if you want to clone repositories locally using this image you'll need to set up special permissions for the target dir. Then, you'll be able to set up a volume and have the contents of the cloned repo replicated on your host machine.

First, create a target directory somewhere in your home folder and set the required permissions:

mkdir ~/workspace
chmod go+wrx ~/workspace

Now you can use docker run to execute the clone command, using the directory you just set up as a volume share between your local machine and the container image on /home/git.

docker run -it -v ~/workspace:/home/git --rm cgr.dev/chainguard/git clone https://github.com/chainguard-images/git.git

You should get output like this:

Cloning into 'git'...
remote: Enumerating objects: 57, done.
remote: Counting objects: 100% (57/57), done.
remote: Compressing objects: 100% (47/47), done.
remote: Total 57 (delta 19), reused 35 (delta 10), pack-reused 0
Receiving objects: 100% (57/57), 15.23 KiB | 866.00 KiB/s, done.
Resolving deltas: 100% (19/19), done.

You can now check the contents of your workspace directory, where you should find the cloned repo.

Signing

All Chainguard Images are signed using Sigstore!


To verify the image, download cosign and run:
COSIGN_EXPERIMENTAL=1 cosign verify cgr.dev/chainguard/git:latest | jq

Output:

Verification for cgr.dev/chainguard/git:latest --
The following checks were performed on each of these signatures:
  - The cosign claims were validated
  - Existence of the claims in the transparency log was verified offline
  - Any certificates were verified against the Fulcio roots.
[
  {
    "critical": {
      "identity": {
        "docker-reference": "ghcr.io/chainguard-images/git"
      },
      "image": {
        "docker-manifest-digest": "sha256:7d1c0c05ff33f7887a17f1ef41ecb5dff6f3621aa3eb765ba30e8ae748feeb82"
      },
      "type": "cosign container image signature"
    },
    "optional": {
      "1.3.6.1.4.1.57264.1.1": "https://token.actions.githubusercontent.com",
      "1.3.6.1.4.1.57264.1.2": "schedule",
      "1.3.6.1.4.1.57264.1.3": "f26ac6517e76c3aa9d25c97a2d74b426db3dcb74",
      "1.3.6.1.4.1.57264.1.4": "Create Release",
      "1.3.6.1.4.1.57264.1.5": "chainguard-images/git",
      "1.3.6.1.4.1.57264.1.6": "refs/heads/main",
      "Bundle": {
        "SignedEntryTimestamp": "MEQCIDTKkM+LycPCXJg5YNadJNlpnHZKtLURVkFAi8FPfSljAiBVHZVNGxGigmPV5tOw40NzzHh7j7ECQFSJoW+CMlw/RA==",
        "Payload": {
          "body": "eyJhcGlWZXJzaW9uIjoiMC4wLjEiLCJraW5kIjoiaGFzaGVkcmVrb3JkIiwic3BlYyI6eyJkYXRhIjp7Imhhc2giOnsiYWxnb3JpdGhtIjoic2hhMjU2IiwidmFsdWUiOiI5MzA0MTljYjc4MWFjZTJhNDBjZmFiOTJmZDJlMTdiZWEwZjk3ZTE2ODgyYzFkNGY4ZGYxOGQyMTExMzI3YjhkIn19LCJzaWduYXR1cmUiOnsiY29udGVudCI6Ik1FVUNJRUcyOGMzR0Z3bXljckxHb2Vickc5aDhXb0ZxREFaOUZjZ00wcEZWM3pWV0FpRUF4RGdDYjRNZlZqWUsvcnUxenhjaFVaeXBKREtMSk43YUw3cDgwdWF6aEV3PSIsInB1YmxpY0tleSI6eyJjb250ZW50IjoiTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVUndha05EUVhsNVowRjNTVUpCWjBsVlNVcE9ZamxTWkdGdFJsbE1MemhsUVRNeGJIQklZblV3U0VvMGQwTm5XVWxMYjFwSmVtb3dSVUYzVFhjS1RucEZWazFDVFVkQk1WVkZRMmhOVFdNeWJHNWpNMUoyWTIxVmRWcEhWakpOVWpSM1NFRlpSRlpSVVVSRmVGWjZZVmRrZW1SSE9YbGFVekZ3WW01U2JBcGpiVEZzV2tkc2FHUkhWWGRJYUdOT1RXcEplRTFVUVRGTlJFbDNUMFJKZVZkb1kwNU5ha2w0VFZSQk1VMUVTWGhQUkVsNVYycEJRVTFHYTNkRmQxbElDa3R2V2tsNmFqQkRRVkZaU1V0dldrbDZhakJFUVZGalJGRm5RVVZVWW5SMk9IQlhhRmRHV1dGcVdVaHFha1p2ZWxoRWFFMTVMM0JXZVhKaFIyMU5Ra1lLYWpaTGRrYzFZalJ3YW14ME5EaE1TVGhUUVNzMEwxUlVkR2RWZVVsdVltd3pWR2xyUVhSaE1rdHdWVXRtUzA5cEwyRlBRMEZyYzNkblowcElUVUUwUndwQk1WVmtSSGRGUWk5M1VVVkJkMGxJWjBSQlZFSm5UbFpJVTFWRlJFUkJTMEpuWjNKQ1owVkdRbEZqUkVGNlFXUkNaMDVXU0ZFMFJVWm5VVlZrZGxseUNqaGpPVlZWTWtoWWQwVnhlbHBzTURkcFNuSTVUVzB3ZDBoM1dVUldVakJxUWtKbmQwWnZRVlV6T1ZCd2VqRlphMFZhWWpWeFRtcHdTMFpYYVhocE5Ga0tXa1E0ZDFwUldVUldVakJTUVZGSUwwSkdjM2RYV1ZwWVlVaFNNR05JVFRaTWVUbHVZVmhTYjJSWFNYVlpNamwwVERKT2IxbFhiSFZhTTFab1kyMVJkQXBoVnpGb1dqSldla3d5WkhCa1F6aDFXakpzTUdGSVZtbE1NMlIyWTIxMGJXSkhPVE5qZVRsNVdsZDRiRmxZVG14TWJteG9ZbGQ0UVdOdFZtMWplVGx2Q2xwWFJtdGplVGwwV1Zkc2RVMUVhMGREYVhOSFFWRlJRbWMzT0hkQlVVVkZTekpvTUdSSVFucFBhVGgyWkVjNWNscFhOSFZaVjA0d1lWYzVkV041Tlc0S1lWaFNiMlJYU2pGak1sWjVXVEk1ZFdSSFZuVmtRelZxWWpJd2QwWm5XVXRMZDFsQ1FrRkhSSFo2UVVKQloxRkpZekpPYjFwWFVqRmlSMVYzVG1kWlN3cExkMWxDUWtGSFJIWjZRVUpCZDFGdldtcEpNbGxYVFRKT1ZFVXpXbFJqTWxsNlRtaFpWR3hyVFdwV2FrOVVaR2hOYlZFelRrZEpNRTFxV210WmFrNXJDbGt5U1ROT1JFRmpRbWR2Y2tKblJVVkJXVTh2VFVGRlJVSkJOVVJqYlZab1pFZFZaMVZ0Vm5OYVYwWjZXbFJCYWtKbmIzSkNaMFZGUVZsUEwwMUJSVVlLUWtKV2FtRkhSbkJpYldReFdWaEthMHhYYkhSWlYyUnNZM2s1Ym1GWVVYZElVVmxMUzNkWlFrSkJSMFIyZWtGQ1FtZFJVR050Vm0xamVUbHZXbGRHYXdwamVUbDBXVmRzZFUxSlIweENaMjl5UW1kRlJVRmtXalZCWjFGRFFrZ3dSV1YzUWpWQlNHTkJNMVF3ZDJGellraEZWRXBxUjFJMFkyMVhZek5CY1VwTENsaHlhbVZRU3pNdmFEUndlV2RET0hBM2J6UkJRVUZIUlZKWmRsVkhRVUZCUWtGTlFWTkVRa2RCYVVWQk9YcGtSVkZ2ZDJkblNEbE1keTk0VVhKeGFsTUtNM1ZsV0Vwck1ITTBTRlJNUmtFemNXcE9PVElyWW1kRFNWRkVNRkZSTmtvNVdXRmxXRzVzTjA1a2FISkZNekZGVVVGMldtSnlZVWRtUTBSUVVVZDVlZ3BxZUdwamJYcEJTMEpuWjNGb2EycFBVRkZSUkVGM1RtOUJSRUpzUVdwQlp6WktVbHA0TXpoblNHVk1kRTlIY0hod1JFUlNVM1l5VURoM05uQnRTRkJ2Q21WNWNrRjZZbTU2Y2xOU1kydHpZMk5qY1VSS1kyeG9ZVlZaY0UxcFIzZERUVkZEU1hJMVIzcGpRbTFFVUVacFlqVXhkVFJIVFRCbmJVWmhUbTlPU1VJS1VIQlVaSEpEYjNSUlVTc3dhSHBoS3psVmNUbHVlVTVXVlRONmNEQTNLM1pXY0RnOUNpMHRMUzB0UlU1RUlFTkZVbFJKUmtsRFFWUkZMUzB0TFMwSyJ9fX19",
          "integratedTime": 1667614122,
          "logIndex": 6532497,
          "logID": "c0d23d6ad406973f9559f3ba2d1ca01f84147d8ffc5b8445c224f98b9591801d"
        }
      },
      "Issuer": "https://token.actions.githubusercontent.com",
      "Subject": "https://github.com/chainguard-images/git/.github/workflows/release.yaml@refs/heads/main",
      "githubWorkflowName": "Create Release",
      "githubWorkflowRef": "refs/heads/main",
      "githubWorkflowRepository": "chainguard-images/git",
      "githubWorkflowSha": "f26ac6517e76c3aa9d25c97a2d74b426db3dcb74",
      "githubWorkflowTrigger": "schedule",
      "run_attempt": "1",
      "run_id": "3398276120",
      "sha": "f26ac6517e76c3aa9d25c97a2d74b426db3dcb74"
    }
  }
]

You can verify that the image was built in Github Actions in this repository from the Issuer and Subject fields.

Build

This image is built with apko.

About

A distroless image containing only git and related utilities.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Shell 100.0%
0