diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-09-06 17:15:41 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-09-06 17:17:40 +0200 |
commit | 95ff0a41616e6f2fc99ebf4fad5b102e7d958f20 (patch) | |
tree | 4a6fde2328b261883df5d58f5af4402554bf8754 /osmo-gerrit-libosmo | |
parent | baa18dd4ed598c3d945c75b5a9b02b8540810fff (diff) |
osmo-gerrit-libosmo: Example Dockerfile for gerrit container
Diffstat (limited to 'osmo-gerrit-libosmo')
-rw-r--r-- | osmo-gerrit-libosmo/Dockerfile | 141 | ||||
-rw-r--r-- | osmo-gerrit-libosmo/Makefile | 3 |
2 files changed, 144 insertions, 0 deletions
diff --git a/osmo-gerrit-libosmo/Dockerfile b/osmo-gerrit-libosmo/Dockerfile new file mode 100644 index 0000000..ac89bbe --- /dev/null +++ b/osmo-gerrit-libosmo/Dockerfile @@ -0,0 +1,141 @@ +# Proposed new Dockerfile for gerrit.osmocom.org build testing +# The idea is to have one image with all library dependencies of all +# projects, and then simply 'git pull' + build the given project +# that we want to compile-test at 'docker run' time (in tmpfs) + +FROM laforge/debian-jessie-buildslave + +MAINTAINER Harald Welte <laforge@gnumonks.org> + +USER build +WORKDIR /build + +# initial clone of all library repositories, i.e. repositories that we +# want to pull, compile and install during 'docker build' time of this +# image. We crate a base checkout here that creates an intermediate +# cache layer. Later we use the "ADD http://git..." trick to ensure +# we re-fetch/re-build once master changes +RUN git clone git://git.osmocom.org/libasn1c.git && \ + git clone git://git.osmocom.org/libsmpp34.git && \ + git clone git://git.osmocom.org/libosmocore.git && \ + git clone git://git.osmocom.org/libosmo-abis.git && \ + git clone git://git.osmocom.org/libosmo-netif.git && \ + git clone git://git.osmocom.org/libosmo-sccp.git && \ + git clone git://git.osmocom.org/osmo-iuh.git && \ + git clone git://git.osmocom.org/osmo-mgw.git + +# initial checkout of all applications-under-test to avoid full +# re-clone at every build. We intentionally don't have "ADD" +# statements to cgit URLs, so the cache will not detect and rebuild +# if the upstream repo changes. This is no problem, as at 'run' time +# we'll be doing a git fetch anyway. +RUN git clone --reference osmo-mgw git://git.osmocom.org/openbsc.git && \ + git clone --reference openbsc git://git.osmocom.org/osmo-bsc.git && \ + git clone --reference openbsc git://git.osmocom.org/osmo-msc.git && \ + git clone --reference openbsc git://git.osmocom.org/osmo-sgsn.git && \ + git clone git://git.osmocom.org/openggsn.git && \ + git clone --reference openggsn git://git.osmocom.org/osmo-ggsn.git && \ + git clone git://git.osmocom.org/osmo-bts.git && \ + git clone git://git.osmocom.org/osmo-hlr.git && \ + git clone git://git.osmocom.org/osmo-pcu.git && \ + git clone git://git.osmocom.org/osmo-sip-connector.git && \ + git clone git://git.osmocom.org/osmo-trx.git + +# build libasn1c first, no libosmo* dependency and infrequent changes +ADD http://git.osmocom.org/libasn1c/patch /tmp/commit-libasn1c +RUN cd libasn1c && \ + git fetch && git checkout -f -B master origin/master && \ + autoreconf -fi && \ + ./configure && \ + make -j8 && \ + sudo make install && \ + make clean && \ + sudo ldconfig + +# build libsmpp34 first, no libosmo* dependency and infrequent changes +ADD http://git.osmocom.org/libsmpp34/patch /tmp/commit-libsmpp34 +RUN cd libsmpp34 && \ + git fetch && git checkout -f -B master origin/master && \ + autoreconf -fi && \ + ./configure && \ + make -j1 && \ + sudo make install && \ + make clean && \ + sudo ldconfig + +# build libosmocore before any of its downatream dependences +ADD http://git.osmocom.org/libosmocore/patch /tmp/commit-libosmocore +RUN cd libosmocore && \ + git fetch && git checkout -f -B master origin/master && \ + autoreconf -fi && \ + ./configure && \ + make -j8 && \ + sudo make install && \ + make clean && \ + sudo ldconfig + +# now build all of the downstream dependencies of libosmocore + +ADD http://git.osmocom.org/libosmo-abis/patch /tmp/commit-libosmo-abis +RUN cd libosmo-abis && \ + git fetch && git checkout -f -B master origin/master && \ + autoreconf -fi && \ + ./configure && \ + make -j8 && \ + sudo make install && \ + make clean && \ + sudo ldconfig + +ADD http://git.osmocom.org/libosmo-netif/patch /tmp/commit-libosmo-netif +RUN cd libosmo-netif && \ + git fetch && git checkout -f -B master origin/master && \ + autoreconf -fi && \ + ./configure && \ + make -j8 && \ + sudo make install && \ + make clean && \ + sudo ldconfig + +ADD http://git.osmocom.org/libosmo-sccp/patch /tmp/commit-libosmo-sccp +RUN cd libosmo-sccp && \ + git fetch && git checkout -f -B master origin/master && \ + autoreconf -fi && \ + ./configure && \ + make -j8 && \ + sudo make install && \ + make clean && \ + sudo ldconfig + +ADD http://git.osmocom.org/osmo-mgw/patch /tmp/commit-osmo-mgw +RUN cd osmo-mgw && \ + git fetch && git checkout -f -B master origin/master && \ + autoreconf -fi && \ + ./configure && \ + make -j8 && \ + sudo make install && \ + make clean && \ + sudo ldconfig + +ADD http://git.osmocom.org/osmo-iuh/patch /tmp/commit-osmo-iuh +RUN cd osmo-iuh && \ + git fetch && git checkout -f -B master origin/master && \ + autoreconf -fi && \ + ./configure && \ + make -j8 && \ + sudo make install && \ + make clean && \ + sudo ldconfig + +ADD http://git.osmocom.org/osmo-ggsn/patch /tmp/commit-osmo-ggsn +RUN cd osmo-ggsn && \ + git fetch && git checkout -f -B master origin/master && \ + autoreconf -fi && \ + ./configure && \ + make -j8 && \ + sudo make install && \ + make clean && \ + sudo ldconfig + + +# example command which builds a single osmo-* application at 'docker run' time in tmpfs +CMD /bin/sh -c 'cd /tmpfs && git clone --reference /build/openbsc git://git.osmocom.org/openbsc.git && cd openbsc && git checkout -f -B master origin/master && cd openbsc && autoreconf -fi && ./configure --enable-nat --enable-osmo-bsc --enable-smpp --enable-vty-tests --enable-external-tests && make -j8 check' diff --git a/osmo-gerrit-libosmo/Makefile b/osmo-gerrit-libosmo/Makefile new file mode 100644 index 0000000..b08f5c0 --- /dev/null +++ b/osmo-gerrit-libosmo/Makefile @@ -0,0 +1,3 @@ +RUN_ARGS?=--tmpfs /tmpfs:exec + +include ../make/Makefile |