Skip to content
/ git Public
forked from 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.

License

Notifications You must be signed in to change notification settings

bahetiamit/git

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-git-alpine

A useful simple git container running in alpine Linux, especially for tiny Linux distro, such as RancherOS, which doesn't have a package manager.

DockerHub Badge

Github Repo

https://github.com/alpine-docker/git

travis CI build logs

https://travis-ci.org/alpine-docker/git

Docker image tags

https://hub.docker.com/r/alpine/git/tags/

Notes:

New tags with non-root user in image has been created.

alpine/git:<version>-user
alpine/git:user

Its uid and gid in container are 1000

$ docker run -ti --rm --entrypoint=id alpine/git:user
uid=1000(git-user) gid=1000(git-user)

Docker build from feature branch feature/non-root

usage

docker run -ti --rm -v ${HOME}:/root -v $(pwd):/git alpine/git <git_command>

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.

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

Automation builds

Set Travis CI to run builds every month.

  • build on latest alpine image
  • build with latest git in the alpine image
  • generate new tag for this image
  • generate git's version as image tag as well (v${GIT_VERSION})
  • update latest tag for this image

About

A useful simple git container running in alpine linux, especially for tiny linux distro, such as RancherOS, which don't have package manager.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 82.6%
  • Makefile 12.7%
  • Dockerfile 4.7%