From cd2beca88c04a2d611686e447d2fee88f9ad1824 Mon Sep 17 00:00:00 2001 From: maikkeli Date: Sat, 30 Jan 2016 03:03:12 +1030 Subject: [PATCH] Accept alternate git url with --build-arg LSMB_REPO= Also fetch && checkout no longer need to be followed by a merge since checkout is now detached. Some reordering for docker cache optimisation. --- Dockerfile | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 931ca00..826f672 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,10 +37,19 @@ RUN apt-get install -y \ App::LedgerSMB::Admin # Install LedgerSMB + +# Clone upstream git repository: ENV LSMB_REPO_UPSTREAM=https://github.com/ledgersmb/LedgerSMB.git RUN cd /srv && \ git clone $LSMB_REPO_UPSTREAM ledgersmb +# Set git remote source, eg: --build-arg LSMB_REPO=https://github.com/ehuelsmann/LedgerSMB.git +ARG LSMB_REPO=${LSMB_REPO_UPSTREAM} +WORKDIR /srv/ledgersmb +# add remote repo as alt +RUN git remote add alt ${LSMB_REPO} \ + && git fetch alt + # Set LedgerSMB version (git tag/branch/commit) # Change LSMB_VERSION or use --build-arg on docker build commandline; # eg: @@ -50,22 +59,16 @@ RUN cd /srv && \ # then docker's caching will see nothing new and you'll end up with stale files # if that branch/tag has already been cached. # -# As a hack to reliably update a branch (eg, master), --build-arg CACHEBREAK="$(date)": -# eg: docker build --build-arg CACHEBREAK="$(date)" --build-arg LSMB_VERSION=master . -ARG CACHEBREAK ARG LSMB_VERSION=1.5.0-beta3 ENV LSMB_VERSION ${LSMB_VERSION} -# Set git remote source, eg: --build-arg LSMB_REPO=https://github.com/ehuelsmann/LedgerSMB.git -ARG LSMB_REPO=${LSMB_REPO_UPSTREAM} +# As a hack to reliably update a branch (eg, master), --build-arg CACHEBREAK="$(date)": +# eg: docker build --build-arg CACHEBREAK="$(date)" --build-arg LSMB_VERSION=master . +ARG CACHEBREAK -WORKDIR /srv/ledgersmb - -# add remote repo as alt -# fetch alt (fetches differences between the initial git clone and current alt remote) +# fetch alt (fetches changes since the last fetch) # checkout specified tag/branch/commit from alt; no need for merge because it's detached -RUN git remote add alt ${LSMB_REPO} \ - && git fetch alt \ +RUN git fetch alt \ && git checkout alt/$LSMB_VERSION #RUN sed -i \