From ab1ade53e31145b1b96b982f403cac68d47027a1 Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Wed, 4 Sep 2019 15:12:08 +0200 Subject: [PATCH] Do not copy kiwix-build in docker at creation but mount it at run. As we mount the kiwix-build (source) directory at run, the docker images are independent of the source. This will greatly reduce the number of docker images we have to create. --- .travis.yml | 10 ++++++---- travis/bionic_builder.dockerfile | 6 +----- travis/xenial_builder.dockerfile | 8 ++------ 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/.travis.yml b/.travis.yml index c262328..b88f619 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,12 +20,12 @@ jobs: - stage: build_docker_images script: &build_images - | - if [ ! $(curl -sflL https://hub.docker.com/v2/repositories/kiwix/kiwix-build_ci/tags/${VARIANT}-${TRAVIS_COMMIT}) ] + if [ ! $(curl -sflL https://hub.docker.com/v2/repositories/kiwix/kiwix-build_ci/tags/${VARIANT}-${DOCKER_VERSION}) ] then echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin docker build -t kiwix-build_ci -f travis/${VARIANT}_builder.dockerfile . - docker tag kiwix-build_ci kiwix/kiwix-build_ci:${VARIANT}-${TRAVIS_COMMIT} - docker push kiwix/kiwix-build_ci:${VARIANT}-${TRAVIS_COMMIT} + docker tag kiwix-build_ci kiwix/kiwix-build_ci:${VARIANT}-${DOCKER_VERSION} + docker push kiwix/kiwix-build_ci:${VARIANT}-${DOCKER_VERSION} fi env: VARIANT=xenial - stage: build_docker_images @@ -80,7 +80,8 @@ script: --mount=type=bind,src=$HOME/EXPORT,dst=/home/ci_builder/EXPORT \ --mount=type=bind,src=$HOME/.cache,dst=/home/ci_builder/.cache \ --mount=type=bind,src=$HOME/.gradle/caches,dst=/home/ci_builder/.gradle/caches \ - kiwix/kiwix-build_ci:${VARIANT}-${TRAVIS_COMMIT} + --mount=type=bind,src=$TRAVIS_BUILD_DIR,dst=/home/ci_builder/kiwix-build \ + kiwix/kiwix-build_ci:${VARIANT}-${DOCKER_VERSION} fi - if [[ $TRAVIS_OS_NAME != "linux" ]]; then python3 travis/compile_all.py; fi after_success: @@ -105,6 +106,7 @@ env: global: - NIGHTLY_DATE=$(date +%Y-%m-%d) - SSH_KEY=/tmp/private/travisci_builder_id_key + - DOCKER_VERSION=1 matrix: - PLATFORM="flatpak" DESKTOP_ONLY=1 - PLATFORM="native_dyn" diff --git a/travis/bionic_builder.dockerfile b/travis/bionic_builder.dockerfile index cde804d..df2298c 100644 --- a/travis/bionic_builder.dockerfile +++ b/travis/bionic_builder.dockerfile @@ -29,11 +29,7 @@ USER ci_builder WORKDIR /home/ci_builder ENV PATH="/home/ci_builder/.local/bin:${PATH}" -# Install kiwix-build -COPY --chown=ci_builder:ci_builder . kiwix-build -RUN pip3 install --user -e ./kiwix-build - ENV TRAVIS_BUILD_DIR /home/ci_builder/kiwix-build ENV TRAVIS_OS_NAME linux_bionic -CMD kiwix-build/travis/compile_all.py +CMD pip3 install --user ./kiwix-build && kiwix-build/travis/compile_all.py diff --git a/travis/xenial_builder.dockerfile b/travis/xenial_builder.dockerfile index d84ac01..e826542 100644 --- a/travis/xenial_builder.dockerfile +++ b/travis/xenial_builder.dockerfile @@ -22,7 +22,7 @@ RUN apt update -q && \ # vim less grep \ && \ apt-get clean -y && \ - rm -rf /var/lib/apt/list/* /usr/share/doc/* /var/cache/debconf/* + rm -rf /var/lib/apt/lists/* /usr/share/doc/* /var/cache/debconf/* # Create user RUN useradd --create-home ci_builder @@ -30,12 +30,8 @@ USER ci_builder WORKDIR /home/ci_builder ENV PATH="/home/ci_builder/.local/bin:${PATH}" -# Install kiwix-build -COPY --chown=ci_builder:ci_builder . kiwix-build -RUN pip3 install --user -e ./kiwix-build - ENV TRAVIS_BUILD_DIR /home/ci_builder/kiwix-build ENV GRADLE_USER_HOME /home/ci_builder ENV TRAVIS_OS_NAME linux_xenial -CMD kiwix-build/travis/compile_all.py +CMD pip3 install --user ./kiwix-build && kiwix-build/travis/compile_all.py