Run a Docker Container to git-pull a project
100K+
A Docker image helps you keeping Git-Projects up-to-date. Just mount your Project into the container and latest changes will be pulled automatically. You can optionally mount scripts that will be run before or after a pull.
The Dockerfile compiles into a Docker image that is based on a slim version of Debian's testing image. In addition, it has Git installed.
The image defines a volumn /git-project, where your Git porject should be mounted.
Thus a typical command line call would look like:
docker run --rm -v /path/to/project:/git-project binfalse/git-pull
When you run such a container, it will run the script git-pull.
This script tries to update the project mounted at /git-project.
You can also mount two optional scripts to setup the environment before/after a pull:
/pre-pull will be run if git fetch indicates new commits on the remote, but before git pull is executed/post-pull will be run after a git pullThis image allows to pull through SSH, but this needs a bit more action. You need to mount a properly configured SSH directory into root's home in the container. This directory needs:
known_hosts file, that has already seen the remote hostTo create such an SSH directory, you could do the following:
Create an empty directory:
mkdir /PATH/TO/SSHDIR
Spawn a shell in a container with the dir mounted to /root/.ssh:
docker run --rm -it -v /path/to/project:/git-project -v /PATH/TO/SSHDIR:/root/.ssh --entrypoint /bin/bash binfalse/git-pull
Create an SSH-Deploy key
ssh-keygen -b 4096
Just leave all the questions empty (no passphrase!)
Configure your repository to allow read access for your new key /PATH/TO/SSHDIR/id_rsa.pub (or /root/.ssh/id_rsa.pub from within the container)
From the spawned container run git pull and accept the fingerprint of the remote server
Having this /PATH/TO/SSHDIR setup properly, you can now run:
docker run --rm -v /path/to/project:/git-project -v /PATH/TO/SSHDIR:/root/.ssh binfalse/git-pull
to update the repository :)
In case of questions and doubts just contact me.. :)
Docker Image for a Docker:Git-Pull.
Copyright (C) 2009-2017 Martin Scharm <https://binfalse.de/contact/>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Content type
Image
Digest
Size
55.8 MB
Last updated
about 5 years ago
docker pull binfalse/git-pull