diff --git a/.travis.yml b/.travis.yml index 646eedd..7234d0c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,6 @@ cache: - pip notifications: email: false -sudo: required services: - docker install: @@ -37,7 +36,6 @@ branches: - /release-v[0-9]+/ deploy: provider: script - skip_cleanup: true script: python setup.py deploy_docker_bases on: branch: master diff --git a/arca/__init__.py b/arca/__init__.py index c514865..c84afde 100644 --- a/arca/__init__.py +++ b/arca/__init__.py @@ -6,4 +6,4 @@ __all__ = ["Arca", "BaseBackend", "VenvBackend", "DockerBackend", "Result", "Task", "CurrentEnvironmentBackend", "VagrantBackend"] -__version__ = "0.3.3" +__version__ = "0.4.0" diff --git a/arca/backend/docker.py b/arca/backend/docker.py index 7b00ee0..1ea1b71 100644 --- a/arca/backend/docker.py +++ b/arca/backend/docker.py @@ -305,15 +305,17 @@ def get_or_build_image(self, name: str, tag: str, dockerfile: Union[str, Callabl dockerfile_file.unlink() except docker.errors.BuildError as e: + build_log = [] for line in e.build_log: if isinstance(line, dict) and line.get("errorDetail") and line["errorDetail"].get("code") in {124, 143}: raise BuildTimeoutError(f"Installing of requirements timeouted after " f"{self.requirements_timeout} seconds.") + build_log.append(line) logger.exception(e) raise BuildError("Building docker image failed, see extra info for details.", extra_info={ - "build_log": e.build_log + "build_log": build_log }) def get_arca_base(self, pull=True): @@ -326,11 +328,11 @@ def get_arca_base(self, pull=True): pyenv_installer = "https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer" dockerfile = f""" - FROM debian:stretch-slim + FROM debian:bullseye-slim RUN apt-get update && \ apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ - xz-utils tk-dev libffi-dev git locales && \ + xz-utils tk-dev libffi-dev git locales libxml2-dev libxmlsec1-dev liblzma-dev && \ apt-get clean RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && locale-gen @@ -349,6 +351,7 @@ def get_arca_base(self, pull=True): rm ~/pyenv-installer && \ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> /home/arca/.bash_profile && \ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> /home/arca/.bash_profile && \ + echo 'eval "$(pyenv init --path)"' >> /home/arca/.bash_profile && \ echo 'eval "$(pyenv init -)"' >> /home/arca/.bash_profile USER root @@ -383,7 +386,6 @@ def get_dockerfile(): RUN pyenv update && \ pyenv install {python_version} ENV PYENV_VERSION {python_version} - ENV PATH "/home/arca/.pyenv/shims:$PATH" RUN pip install --upgrade pip setuptools pipenv CMD bash -i """ diff --git a/docs/backends.rst b/docs/backends.rst index 08e665b..2d6034f 100644 --- a/docs/backends.rst +++ b/docs/backends.rst @@ -85,7 +85,7 @@ with ``docker`` (see `documentation `_, which have Python and several build tools pre-installed. -These images are based on ``debian`` (slim ``stretch`` version) and use `pyenv `_ +These images are based on ``debian`` (slim ``bullseye`` version) and use `pyenv `_ to install Python. You can specify you want to base your images on a different image with the ``inherit_image`` setting. diff --git a/setup.py b/setup.py index cf910d6..e6cacc7 100644 --- a/setup.py +++ b/setup.py @@ -20,7 +20,7 @@ def long_description(): setup( name="arca", - version="0.3.3", + version="0.4.0", author="Mikuláš Poul", author_email="mikulaspoul@gmail.com", description="A library for running Python functions (callables) from git repositories "