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.
This commit is contained in:
Matthieu Gautier 2019-09-04 15:12:08 +02:00
parent d86bf75315
commit ab1ade53e3
3 changed files with 9 additions and 15 deletions

View File

@ -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"

View File

@ -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

View File

@ -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