https://github.com/alpine-docker/git
A useful simple git container running in alpine linux, especially for tiny linux distro, such as RancherOS, which don't have package manager.
https://github.com/alpine-docker/git
Last synced: about 1 year ago
JSON representation
A useful simple git container running in alpine linux, especially for tiny linux distro, such as RancherOS, which don't have package manager.
- Host: GitHub
- URL: https://github.com/alpine-docker/git
- Owner: alpine-docker
- License: apache-2.0
- Created: 2016-01-19T06:55:15.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-10-03T05:06:37.000Z (over 1 year ago)
- Last Synced: 2025-03-27T20:13:55.830Z (about 1 year ago)
- Language: Shell
- Homepage:
- Size: 53.7 KB
- Stars: 160
- Watchers: 8
- Forks: 89
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
### docker-git-alpine
[If enjoy, please consider buying me a coffee.](https://www.buymeacoffee.com/ozbillwang)
A useful simple git container running in alpine Linux, especially for tiny Linux distro, such as RancherOS, which doesn't have a package manager.
[](https://hub.docker.com/r/alpine/git/)
### notes about new github action pipeline
From 3rd Oct 2024, the automation build and deploy pipeline has been switched from Circle CI to Github Action (#68 and #70)
### notes about multi-arch images
This feature was added on 23th May 2021.
1. Version v2.30.2 and 1.0.30 are manually pushed by me with multi-arch image supported
2. Older version will be not updated as multi-arch images
3. Newer vesions from now on will be multi-arch images (`--platform linux/amd64,linux/arm/v7,linux/arm64/v8,linux/arm/v6,linux/ppc64le,linux/s390x,linux/386`)
4. I don't support other architectures, except `amd64`, because I have no other environment to do that. If you have any issues with other arch, you need raise PR to fix it.
5. There would be no difference for `docker pull` , `docker run` command with other arch, you can run it as normal. For example, if you need pull image from arm (such as new Mac M1 chip), you can run `docker pull alpine/git:v2.30.2` to get the image directly.
### Github Repo
https://github.com/alpine-docker/git
### CI build logs
https://github.com/alpine-docker/git/actions
### Docker image tags
https://hub.docker.com/r/alpine/git/tags/
### Usage
docker run -ti --rm -v ${HOME}:/root -v $(pwd):/git alpine/git
For example, if you need clone this repository, you can run
docker run -ti --rm -v ${HOME}:/root -v $(pwd):/git alpine/git clone https://github.com/alpine-docker/git.git
### Optional usage 1:
To save your type, add this fuction to `~/.bashrc` or `~/.profile`
$ cat ~/.profile
...
function git () {
(docker run -ti --rm -v ${HOME}:/root -v $(pwd):/git alpine/git "$@")
}
...
$ source ~/.profile
for example, if you need clone this repository, with the function you just set, you can run it as local command
git clone https://github.com/alpine-docker/git.git
### Optional usage 2:
alias git="docker run -ti --rm -v $(pwd):/git -v $HOME/.ssh:/root/.ssh alpine/git"
#### NOTES:
- You need redefine (re-run) the alias, when you switch between different repositories
- You need run above alias command only under git repository's root directory.
### Optional usage 3:
alias git='docker run -ti --rm -u$(id -u):$(id -g) -e HOME=${HOME} -v /etc/passwd:/etc/passwd -v /etc/group:/etc/group -v ${HOME}:${HOME} -v $(pwd):/git alpine/git'
### NOTES:
- set uid:gid and provide passwd and group from host
- run git as the current user instead of root for proper ownership of files
- can be used at any directory as evaluation of $(pwd) is defered until alias is used
## Demo
$ cd application
$ alias git="docker run -ti --rm -v $(pwd):/git -v $HOME/.ssh:/root/.ssh alpine/git"
$ git clone git@github.com:YOUR_ACCOUNT/YOUR_REPO.git
$ cd YOUR_REPO
$ alias git="docker run -ti --rm -v $(pwd):/git -v $HOME/.ssh:/root/.ssh alpine/git"
# edit several files
$ git add .
$ git status
$ git commit -m "test"
$ git push -u origin master
### The Protocols
Supports git, http/https and ssh protocols.
Refer:
[Git on the Server - The Protocols](https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols)
### Automation builds
Set CI to run builds per week
- build latest alpine image with multi-arch supported
- Get the git version from the image
- use the git's version as image tag as well (`v${GIT_VERSION}`)
- update `latest` tag for this image