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 - stage: build_docker_images
script: &build_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 then
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
docker build -t kiwix-build_ci -f travis/${VARIANT}_builder.dockerfile . docker build -t kiwix-build_ci -f travis/${VARIANT}_builder.dockerfile .
docker tag kiwix-build_ci 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}-${TRAVIS_COMMIT} docker push kiwix/kiwix-build_ci:${VARIANT}-${DOCKER_VERSION}
fi fi
env: VARIANT=xenial env: VARIANT=xenial
- stage: build_docker_images - 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/EXPORT,dst=/home/ci_builder/EXPORT \
--mount=type=bind,src=$HOME/.cache,dst=/home/ci_builder/.cache \ --mount=type=bind,src=$HOME/.cache,dst=/home/ci_builder/.cache \
--mount=type=bind,src=$HOME/.gradle/caches,dst=/home/ci_builder/.gradle/caches \ --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 fi
- if [[ $TRAVIS_OS_NAME != "linux" ]]; then python3 travis/compile_all.py; fi - if [[ $TRAVIS_OS_NAME != "linux" ]]; then python3 travis/compile_all.py; fi
after_success: after_success:
@ -105,6 +106,7 @@ env:
global: global:
- NIGHTLY_DATE=$(date +%Y-%m-%d) - NIGHTLY_DATE=$(date +%Y-%m-%d)
- SSH_KEY=/tmp/private/travisci_builder_id_key - SSH_KEY=/tmp/private/travisci_builder_id_key
- DOCKER_VERSION=1
matrix: matrix:
- PLATFORM="flatpak" DESKTOP_ONLY=1 - PLATFORM="flatpak" DESKTOP_ONLY=1
- PLATFORM="native_dyn" - PLATFORM="native_dyn"

View File

@ -29,11 +29,7 @@ USER ci_builder
WORKDIR /home/ci_builder WORKDIR /home/ci_builder
ENV PATH="/home/ci_builder/.local/bin:${PATH}" 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_BUILD_DIR /home/ci_builder/kiwix-build
ENV TRAVIS_OS_NAME linux_bionic 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 \ # vim less grep \
&& \ && \
apt-get clean -y && \ 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 # Create user
RUN useradd --create-home ci_builder RUN useradd --create-home ci_builder
@ -30,12 +30,8 @@ USER ci_builder
WORKDIR /home/ci_builder WORKDIR /home/ci_builder
ENV PATH="/home/ci_builder/.local/bin:${PATH}" 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_BUILD_DIR /home/ci_builder/kiwix-build
ENV GRADLE_USER_HOME /home/ci_builder ENV GRADLE_USER_HOME /home/ci_builder
ENV TRAVIS_OS_NAME linux_xenial 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