From da538f20a8be3de7cafc8c1eb555cd4a47d7cd61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikul=C3=A1=C5=A1=20Poul?= Date: Tue, 11 Jan 2022 21:01:52 +0100 Subject: [PATCH 1/5] Remove deprecated travis options --- .travis.yml | 2 -- 1 file changed, 2 deletions(-) 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 From 6d37819be4fa149adc8cfc90489b94e5e97c93cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikul=C3=A1=C5=A1=20Poul?= Date: Tue, 11 Jan 2022 21:19:57 +0100 Subject: [PATCH 2/5] Store lines of build log in get_or_build_image so they can be passed to BuildError --- arca/backend/docker.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arca/backend/docker.py b/arca/backend/docker.py index 7b00ee0..7520e03 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): From 8eb69f54fa705b8bf4f18debda5f182fb3dc978a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikul=C3=A1=C5=A1=20Poul?= Date: Tue, 11 Jan 2022 21:30:32 +0100 Subject: [PATCH 3/5] Bump version --- arca/__init__.py | 2 +- setup.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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/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 " From 05bed069695a400a876bb9c1e926600a7265a249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikul=C3=A1=C5=A1=20Poul?= Date: Tue, 11 Jan 2022 22:02:21 +0100 Subject: [PATCH 4/5] Add missing python deps, use pyenv init --path instead of direct export in a step later --- arca/backend/docker.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arca/backend/docker.py b/arca/backend/docker.py index 7520e03..a6fd410 100644 --- a/arca/backend/docker.py +++ b/arca/backend/docker.py @@ -332,7 +332,7 @@ def get_arca_base(self, pull=True): 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 @@ -351,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 @@ -385,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 """ From 66fd5fbcfdf7b083fd7704a29e51dccc40f0b8de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikul=C3=A1=C5=A1=20Poul?= Date: Tue, 11 Jan 2022 22:09:19 +0100 Subject: [PATCH 5/5] Upgrade to debian from stretch to bullseye --- arca/backend/docker.py | 2 +- docs/backends.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arca/backend/docker.py b/arca/backend/docker.py index a6fd410..1ea1b71 100644 --- a/arca/backend/docker.py +++ b/arca/backend/docker.py @@ -328,7 +328,7 @@ 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 \ 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.