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:
parent
d86bf75315
commit
ab1ade53e3
10
.travis.yml
10
.travis.yml
|
@ -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"
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue