Public Repository

Last pushed: a year ago
Short Description
Used to build gnucash using ubuntu 14.04
Full Description

I run this image like this:

docker run -v /home/lmat/source/gnucash:/repos/gnucash-origin:ro  lmat/gnucash-build '/run' 'git clone gnucash-origin gnucash;';

/run is a script that kicks off the build, but it expects at least one command from you. The command(s) you provide should create the gnucash repository at /repos/gnucash. When your command(s) start, the working directory will be /repos. You can take this opportunity to check out a repository from wherever you want, and even do some setup like picking a branch. I mount my local gnucash repository into the docker container and clone that.

To run multiple commands, pass them as separate, quoted arguments:

    docker run -v /home/lmat/source/gnucash:/repos/gnucash-origin:ro  lmat/gnucash-build '/run' 'git clone --mirror gnucash-origin gnucash;' 'cd gnucash;' 'git checkout myfeature;';

As far as I can tell, you can't view my Dockerfile using docker hub, so here it is:

FROM ubuntu:14.04

RUN apt-get update -qq
RUN apt-get build-dep -qq gnucash
RUN apt-get install -qq swig
RUN apt-get install -qq libboost-all-dev
RUN apt-get --reinstall install -qq language-pack-en language-pack-fr
RUN apt-get install -qq git
RUN apt-get install -qq bash-completion
COPY run /
CMD /run

And here's what's in run:


if [[ "$#" -lt 1 ]]; then
    echo "You must send a statement that will create a repository at /repos/gnucash"
    echo " If you have mounted a source readonly volume at /repos/gnucash-origin,"
    echo " something like   'git clone gnucash/origin gnucash;"
    echo " (commands are run from /repos)";
    echo " or  'git clone /repos/gnucash'";
    exit 1;

if [[ ! -d /repos ]]; then
    mkdir /repos;

cd /repos;

for command in "$@"; do
    eval "$command"

cd /repos/gnucash;
mkdir build; cd build;
../ && ../configure;
make -j 3
TZ="America/Los_Angeles" make check -j 3
Docker Pull Command