Code Monkey home page Code Monkey logo

binfalse_docker-git-pull's Introduction

Docker:Git-Pull

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.

What it does

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 pull

Pulling from SSH repositories

This 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:

  1. a password-less SSH key
  2. a known_hosts file, that has already seen the remote host

To create such an SSH directory, you could do the following:

  1. Create an empty directory:

    mkdir /PATH/TO/SSHDIR

  2. 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

  3. Create an SSH-Deploy key

    ssh-keygen -b 4096

  4. Just leave all the questions empty (no passphrase!)

  5. 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)

  6. 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.. :)

LICENSE

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/>.

binfalse_docker-git-pull's People

Contributors

binfalse avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.