From 41dcd3ed884e380008449f982e59846d726ee609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Vavru=C5=A1a?= <marek.vavrusa@nic.cz> Date: Thu, 12 Feb 2015 10:52:36 +0100 Subject: [PATCH] build: updated dockerfile, added BUILD_IGNORE for depends --- platform.mk | 1 + scripts/Dockerfile | 31 ++++++++++++------------------- scripts/bootstrap-depends.sh | 9 ++++++--- 3 files changed, 19 insertions(+), 22 deletions(-) diff --git a/platform.mk b/platform.mk index b7ced0ea8..baa535cc8 100644 --- a/platform.mk +++ b/platform.mk @@ -70,6 +70,7 @@ ifeq ($$(strip $$($(1)_LIBS)),) else HAS_$(1) := yes $(1): +.PHONY: $(1) endif endef diff --git a/scripts/Dockerfile b/scripts/Dockerfile index dbbe4d253..454fddb87 100644 --- a/scripts/Dockerfile +++ b/scripts/Dockerfile @@ -1,10 +1,13 @@ -FROM cznic/knot:latest +FROM debian:jessie MAINTAINER Marek Vavrusa <marek.vavrusa@nic.cz> # Environment ENV THREADS 4 -ENV BUILD_PKGS git-core make gcc libtool autoconf pkg-config libcmocka-dev libgnutls28-dev liblmdb-dev libjansson-dev -ENV RUNTIME_PKGS libgnutls28 libjansson liblmdb0 +ENV BUILD_PKGS git-core make gcc libtool autoconf pkg-config cmake libgnutls28-dev libjansson-dev +ENV RUN_PKGS libgnutls-deb0-28 libjansson4 +ENV PREFIX /usr/local +ENV BUILD_DIR /tmp/build +ENV BUILD_IGNORE gmp nettle jansson gnutls # Expose port EXPOSE 53 @@ -15,28 +18,18 @@ CMD ["/usr/local/sbin/kresolved", "-a", "0.0.0.0#53"] # Install dependencies and sources RUN apt-get -q -y update && \ -apt-get install -q -y ${BUILD_PKGS} ${RUNTIME_PKGS} && \ -# Install libuv -git clone https://github.com/libuv/libuv.git /libuv-src && \ -cd /libuv-src && \ -sh autogen.sh && \ -./configure && \ -make -j${THREADS} && \ -make install && \ +apt-get install -q -y ${BUILD_PKGS} ${RUN_PKGS} && \ +# Install dependencies +git clone https://gitlab.labs.nic.cz/knot/resolver.git ${BUILD_DIR} && \ +cd ${BUILD_DIR} && \ +./scripts/bootstrap-depends.sh ${PREFIX} && \ ldconfig && \ # Install knot-resolver -git clone https://gitlab.labs.nic.cz/knot/resolver.git /resolver-src && \ -cd /resolver-src && \ -sh ./bootstrap && \ -./configure && \ make -j${THREADS} && \ -make check && \ make install && \ ldconfig && \ # Trim down the image -rm -rf /libuv-src && \ -rm -rf /resolver-src && \ apt-get purge -q -y ${BUILD_PKGS} && \ apt-get autoremove -q -y && \ apt-get clean && \ -rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* +rm -rf /var/lib/apt/lists/* /var/tmp/* /tmp/* diff --git a/scripts/bootstrap-depends.sh b/scripts/bootstrap-depends.sh index 55d0fc692..d21af8861 100755 --- a/scripts/bootstrap-depends.sh +++ b/scripts/bootstrap-depends.sh @@ -45,7 +45,7 @@ function fetch_pkg { function build_pkg { if [ -f CMakeLists.txt ]; then - [ -e cmake-build ] && rm -r cmake-build; mkdir cmake-build; cd cmake-build + [ -e cmake-build ] && rm -rf cmake-build; mkdir cmake-build; cd cmake-build cmake -DCMAKE_INSTALL_PREFIX=${PREFIX} .. else if [ ! -e ./configure ]; then @@ -58,7 +58,7 @@ function build_pkg { } function pkg { - if [ ! -e ${PREFIX}/$4 ]; then + if [ ! -e ${PREFIX}/$4 ] && [ "${BUILD_IGNORE}" == "${BUILD_IGNORE/$1/}" ] ; then cd ${BUILD_DIR} echo "[x] fetching $1-$3" fetch_pkg "$1-$3" "$2" $3 >> ${LOG} @@ -98,4 +98,7 @@ pkg libknot ${KNOT_URL} ${KNOT_TAG} include/libknot \ # cmocka pkg cmocka ${CMOCKA_URL} ${CMOCKA_TAG} include/cmocka.h # libuv -pkg libuv ${LIBUV_URL} ${LIBUV_TAG} include/uv.h --disable-static \ No newline at end of file +pkg libuv ${LIBUV_URL} ${LIBUV_TAG} include/uv.h --disable-static + +# remove on successful build +rm -rf ${BUILD_DIR} -- GitLab