Menu
  • HOME
  • TAGS

Docker git clone on container launch?

Tag: git,docker

My current understanding is that Docker executes any RUN git clone commands during docker build and thus the codebase for my app is 'baked in' to the Docker image.

How would I go about running the git clone when the container launches?

Or is this considered bad practice and anti-pattern?

The idea being that I don't want to have to uptick my Docker image version every time I make any changes to my git repo.

Best How To :

The common design pattern is clonning and compiling your project in the Docker image build process. In addition, you can configure your image as a Docker Automated Build, which is defined in Docker documentation as:

Automated Builds are a special feature of Docker Hub which allow you to use Docker Hub's build clusters to automatically create images from a specified Dockerfile and a GitHub or Bitbucket repo (or "context"). The system will clone your repository and build the image described by the Dockerfile using the repository as the context. The resulting automated image will then be uploaded to the Docker Hub registry and marked as an Automated Build.

The automated build is launch anytime you do a commit (and a push) in the branch of the repo you are pointing. If it is triggered too often maybe you should point to other branch.

Anyway, if you choose to run the git clone when you run a new container, you can configure your Dockerfile with CMD ["my-script"], being my-script any bash script with the code you wish.

Hide sensitive information from git changes

git,security

What you probably are looking for is a filter. You set these up in your .gitattributes file to run one substitution upon adding a file to the staging area, and another substitution upon checkout: The image is from the .gitattributes section of the Git book, which has details on how...

Why does rebasing unset my current branch and does not complete?

git,rebase

I fixed conflicts and committed the changes: That's where you went wrong. git rebase --continue expects the changes to be in the index, but not yet committed. Since you already committed the changes, git rebase's own attempt fails, because there are no changes left to be committed. You should...

Custom post-receive hook with gitlab

git,gitlab,webhooks

on the file so it is owned by the 'git' user. I have no git user on the webserver... all other git related files are owned by my user or root. That is because oyur webserver is a client of the GitLab server. The documentation you reference is for...

Cannot get my post-commit script to run (git)

git,hook

For the remote repository you should use the post-recieve hook. I think the post-commit hook is only run on the clients, and not on the remote repository. From the docs post-receive This hook is invoked by git-receive-pack on the remote repository, which happens when a git push is done on...

Git undo changes made in a specific folder

git

If you want to undo the changes, do git checkout app/code/core/.

Docker container http requests limit

http,elasticsearch,docker

So, it wasn't a problem with either Docker or Elastic. Just to recap, the same script throwning PUT requests at a Elasticsearch setup locally worked, but when throwning at a container with Elasticsearch failed after a few thousand documents (20k). To note that the overal number of documents was roughtly...

git: assume unchanged bit not set

git

While the actual behavior may have changed between versions, this is an implementation detail. Fundamentally, assume-unchanged is a mechanism to allow Git to avoid hitting the filesystem to look for changes. It means that Git may avoid looking at the files, it doesn't mean that Git must avoid looking at...

How to edit file after I shell to a docker container?

docker

As in the comments, there's no default editor set - strange - $EDITOR env variable is empty. You can login into container with docker exec -it <container> bash and run: apt-get update apt-get install vim or use the following Dockerfile: FROM confluent/postgres-bw:0.1 RUN ["apt-get", "update"] RUN ["apt-get", "install", "-y"] ...

Is it possible to connect to remote DB while working in localhost?

php,mysql,git,phpmyadmin

Yes, of course it is. You'll need to whitelist your development servers on the remote server's firewall and allow remote access to the database. If you're using cPanel, there are options there to do so, but you may need to speak to your host as well.

Fix git branch after another developer did a reset

git,github

If I understand this correctly, the other developer's local branch looks like this (reverse chronological order): +- (F) His last commit (Required) +- (E) His commits 2, 3, 4, etc ... (Required) +- (D) His commit 1 (Required) +- (C) Your commit 2 (To be discarded) +- (B) Your commit...

Pull request within one project/branch?

git,github

Yes. You can create pull request for separate branches of the same repository. C just needs to make sure to push their changes on a separate branch then, so that they can create a pull request from it to the master branch of the project. But yeah, this is totally...

Override .gitattributes text=auto in Windows

windows,git,gitattributes,core.autocrlf

.gitattributes overrides all config settings, so it really can't be overridden; it is the "overrider," so to speak. While you can simply remove the line, this will cause inconsistent behavior on other developers' machines if they have core.autocrlf=true. So the best bet would be to add the following line to...

Working with 2 git repos simultaneously

git

Assuming upstream is the name of the upstream remote and that you want to merge in its master branch, I think it should be as simple as: #fetch upstream changes git fetch upstream #go to the branch where you'll integrate them git checkout your_development_branch #merge in upstream changes git merge...

gitignore in PHPStorm

php,git,phpstorm

Most likely, certain files inside those directories were already added to version control before the directories were added to .gitignore; note that the files listed as ignored in the command line and the ones being modified in the UI are not the same. You can remove them from source control...

How to undo a successful “git cherry-pick”?

git

A cherry-pick is basically a commit, so if you want to undo it, you just undo the commit. when I have other local changes Stash your current changes so you can reapply them after resetting the commit. $ git stash $ git reset --hard HEAD^ $ git stash pop #...

Go back before commit and push changes

git

The push aside, reset is made for this. $ git reset HEAD^ will move your current local head (master, maybe?) one step up in history, while keeping your local files untouched. Then for the push (and you should listen to @jeremytwfortune in his comment), you can (but shouldn't) remove it...

How do I view the list of commits that haven't been pushed yet?

git,git-bash

If you do a git log origin/master..HEAD, it should show you all the commits that have not been pushed (assuming you are on master, of course).

Why can I view some Unix executable files in Mac OS X and not others?

git,bash,shell,unix,binary

Executable files may be scripts (in which case you can read the text), or binaries (which are ELF formatted machine code). Your shell script is a script; git is an ELF binary. You can use the file command to see more detail. For example, on my nearest Linux system: $...

Composer package not found in private repository

git,composer-php

Your required version is almost certainly incorrect as you have a minimum-stability of dev (which is rarely a good idea). ... "require": { "pico/pico-core": "dev-dev" //ensure the dev branch actually exists }, ... Here's a useful guide to composer stability flags: https://igor.io/2013/02/07/composer-stability-flags.html...

Use of container docker as a proxy for CF app to get public IP

docker,containers,bluemix

No you can not do this. The DEA's (part of Cloud Foundry that runs your app) is firewalled off from talking to internal IP's of other DEA's. In Bluemix we do not charge for network bandwidth.

How to download files from git repository?

git,heroku

Installing git in a new dir should be the best option: If your repo is already initiated, check your remotes: git remote --v $ git remote --v heroku ssh://xxxxxxxx.xxx:repo.git (fetch) heroku ssh://xxxxxxxx.xxx:repo.git (push) Check the list you have there. The first parameter, is the remote name, then you should write...

How to customize the configuration file of the official PostgreSQL docker image?

postgresql,docker

The postgres:9.4 image you've inherited from declares a volume at /var/lib/postgresql/data. This essentially means you can can't copy any files to that path in your image; the changes will be discarded. You have a few choices: You could just add your own configuration file as a volume at run-time with...

choose authentication for git pull

git,github

There are two ways of setting up SSH keys on GitHub. User level at https://github.com/settings/ssh or repo level: View the repository on GitHub, click Settings to the right, then Deploy keys, and add your public key....

Extended description text on Git

git,bitbucket

There is no "extended description" concept in git. Only the commit message. What happens is that the commit message can have a single line or multiple lines. External tools or websites such as git-cola or GitHub can interpret multiple lines commit messages as: The first line is a short description...

Git post-receive hook is not executed

linux,git,githooks,git-post-receive

The hook file is incorrectly named post-reveive.

Contributing to open source project on github

git,github

You commit to your local repository; in order for your changes to appear on github, you need to git push them.

Can git ever send your code to a repo that isn't yours?

git,github,git-commit,git-add,git-init

Doing a git commit locally won't result in your code being sent to any repo, let alone a repo which is not yours. When you do a git commit, Git will add some local objects corresponding to the changes you have made in the current working branch. In order for...

I rewrote my program and need some suggestions for my git repo

git

you might want to merge these two repository. here is a answer about how to do this: How do you merge two git repositories? although I will still ask if I have rewritten everything and is better version why I need to worry about the old version. ...

Write Access for user on all repos on Gitolite

git,ubuntu,gitolite

myreponame.git doesn't exist on the server currently, but I'd like to be able to add it automatically just by using the remote add origin command. That is not how you add a new repo with gitolite. You need to modify your conf/gitolite.conf file of your gitolite-admin repo, in order...

Git submodule fail because of link to unexisting revision

git,github,git-submodules

That means A has recorded a gitlink (special entry in the index) referencing a SHA1 of the submodule B which was never pushed to GitHub. When A used B in a local clone, B was at 32a0a80. A was pushed, but B was not. Hence the issue. Normally, a git...

Is there a way to push to a remote Git repository without having to fetch its objects?

git

To the best of my knowledge there is no way to do what you want. When you try to push some commit to a remote repository Git will detect whether your current branch is behind its remote counterpart and it that case it will prompt an error: ! [rejected] master...

How to get previous version using git and VS Express for web 2013?

git,visual-studio-2013

You can get a specific version via git checkout [commit_id]. You can undo that commit with git revert [commit_id].

Not able to access Kibana running in a Docker container on port 5601

elasticsearch,docker,dockerfile,kibana-4

The parent Dockerfile devdb/kibana is using a script to start kibana and elasticsearch when the docker container is started. See CMD ["/sbin/my_init"] and the script itself. When in your own Dockerfile you use the CMD instruction, you override the one from the parents Dockerfiles. Since your CMD only starts gunicorn,...

Why are images created and why doesn't Docker clean them up?

docker

Every RUN line in a Dockerfile is essentially equivalent to docker runing the previous line's image. By default docker keeps all these intermediate images to help with caching, this speeds up subsequent builds. You can ask them to be removed when building by specifying the --rm or --force-rm flags.

Getting code from my forked repository

git,laravel,repository,laravel-5,composer-php

Having a look at your repository in https://github.com/Yunishawash/api-guard it looks like it doesn't have a branch called dev-fullauth. Instead there is a branch dev-bugfix. But you must not name your branch including the dev- prefix. Rename your branch at github from dev-bugfix to bugfix and then your require section would...

How can I get the last commit in all tags?

git

Simply checkout the name of the branch for which you need the last commit. So if you are working on master, do git checkout master. (Edit: after getting more illumination of the problem from the comments, it is not as easy as above). OK, so my guess is that you...

Trying to understand git upstream branch

git,github,version-control

You are mixing up two different concepts of git here. The remote and the branch. Remote [default: origin] Think of the Remote as another computer or another person. Specifying something like origin will tell git who to send your current set of changes to. Branch [default: master] You use branches...

Managing git repos

git,github

Yes, that's the common way to do it. They only get notified if they are on github or other collaboration platforms.You could easily just clone the repo, do your stuff and nobody will have knowledge of that. This depends on your changes. Merging back typically is done in a...

docker set iptables options in docker-compose.yml

docker

The --iptables option only applies to the Docker daemon; it's not a per-container option. The corollary is that this isn't something you could ever set from your docker-compose.yaml file. You would need to modify the options passed to the Docker daemon; on Red Hat systems and derivatives this means you...

Why doesn't “go get gopkg.in/…” work while “go get github.com/…” OK?

windows,git,powershell,github,go

The root cause has been found: Because my computer use a web proxy, so I need to set proxy in environment variable: C:\Users\xiaona>set https_proxy=https://web-proxy.corp.hp.com:8080/ C:\Users\xiaona>set http_proxy=https://web-proxy.corp.hp.com:8080/ C:\Users\xiaona>go get -v gopkg.in/fatih/pool.v2 Fetching https://gopkg.in/fatih/pool.v2?go-get=1 Parsing meta tags from https://gopkg.in/fatih/pool.v2?go-get=1 (status code 200) get "gopkg.in/fatih/pool.v2": found meta tag main.metaImport{Prefix:"gopkg.in/fa tih/pool.v2", VCS:"git",...

Git sees duplicated modified file

git,git-add,git-status

Look again carefully AreaChart.js and Areachart.js are different files. One has capital C and other has lower case c character. Since Git is case sensitive, and your filesystem is case insensitive, you will only see one of these on your filesystem. If you only want one in Git, you should...

Not able to create staging instance on heroku [duplicate]

ruby-on-rails,git,heroku,sqlite3

In your Gemfile group :production do gem 'pg', '0.17.1' gem 'rails_12factor', '0.0.2’ end and also remove gem 'sqlite3' OR group :development, :test do gem 'sqlite3' end Because heroku can't install the sqlite3 gem. But you can tell bundler that it shouldn't be trying to except when developing. Then run bundle...

How to pull files and only override conflicts

git,github

Doing a git pull should do the right thing, as long as you haven't done git add on the files you don't want in to have under git. I suggest putting the names of those files in a .gitignore. If you are running into a specific problem with using git...

Docker-compose and pdb

python,docker,pdb,docker-compose

Try running your web container with the --service-ports option: docker-compose run --service-ports web

How to tell git-svn that files are NOT binary

git,svn,migration,git-svn,gitattributes

The binary attribute "macro" is a shorthand for -diff -merge -text (see gitattributes docs). In opposite to the the text-attribute which influences the line ending conversion of files between the repository and the working copy version, the diff and merge-attributes do not influence how Git stores files. The latter two...

Why does git checkout modify the index without being documented as such?

git

From the man page you pasted in your question: The <tree-ish> argument can be used to specify a specific tree-ish (i.e. commit, tag or tree) to update the index for the given paths before updating the working tree. So you can see, it does clearly state that the index will...

How to get rid of .ignore file in Git?

git,file,bitbucket,ignore

.gitignore is just like any other file under version control, so yes, you can delete it. However, keep in mind that it probably has entries in it that should be kept, so instead of deleting it, I would just modify it so that your jar files are no longer ignored.

Any suggestion for running Aerospike on Kubernetes on CoreOS on GCE?

docker,google-compute-engine,kubernetes,aerospike

An alternative to specifying all mesh seed IP addresses is to use the asinfo tip command. Please see: http://www.aerospike.com/docs/reference/info/#tip the tip command asinfo -v 'tip:host=172.16.121.138;port=3002' The above command could be added to a script or orchestration tool with correct ips. You may also find addtional info on the aerospike Forum:...

Configure Git to use a .pem key from a specific location

git,ssh

From the git(1) man page: GIT_SSH If this environment variable is set then git fetch and git push will use this command instead of ssh when they need to connect to a remote system. The $GIT_SSH command will be given exactly two or four arguments: the [email protected] (or just host)...

“Arguments to path.resolve must be strings” when calling 'gitbook build' from a Git hook

node.js,git,gruntjs,githooks,gitbook

Some further consideration brought me to the right direction: Invoking a Git hook has a different login context than working on the server's command line. So running set > some-file in both contexts revealed significant differences in environment variables. Some experiments turned out that it was export HOME=/home/git that had...