From d81f8374c9eb68e5da3d6753d280d2d058a343e8 Mon Sep 17 00:00:00 2001 From: krateng Date: Sat, 23 Apr 2022 20:13:50 +0200 Subject: [PATCH] Simplified container build --- Containerfile | 16 +++------------- dev/templates/Containerfile.jinja | 9 --------- install/install_alpine.sh | 1 + install/install_dependencies_alpine.sh | 1 + pyproject.toml | 1 + requirements_pre.txt | 3 --- 6 files changed, 6 insertions(+), 25 deletions(-) delete mode 100644 requirements_pre.txt diff --git a/Containerfile b/Containerfile index 8e11da8..b1d1981 100644 --- a/Containerfile +++ b/Containerfile @@ -6,7 +6,7 @@ FROM alpine:3.15 WORKDIR /usr/src/app # Install run dependencies first -RUN apk add --no-cache python3 tzdata +RUN apk add --no-cache python3 py3-lxml tzdata # system pip could be removed after build, but apk then decides to also remove all its # python dependencies, even if they are explicitly installed as python packages @@ -15,16 +15,7 @@ RUN \ apk add py3-pip && \ pip install wheel -# these are more static than the real requirements, which means caching -COPY ./requirements_pre.txt ./requirements_pre.txt -RUN \ - apk add --no-cache --virtual .build-deps gcc g++ python3-dev libxml2-dev libxslt-dev libffi-dev libc-dev py3-pip linux-headers && \ - pip install --no-cache-dir -r requirements_pre.txt && \ - apk del .build-deps - - -# less likely to be cached COPY ./requirements.txt ./requirements.txt RUN \ @@ -39,10 +30,9 @@ COPY . . RUN pip install /usr/src/app -# Docker-specific configuration -# defaulting to IPv4 is no longer necessary (default host is dual stack) +# Docker-specific configuration and default to IPv4 ENV MALOJA_SKIP_SETUP=yes -ENV PYTHONUNBUFFERED=1 +ENV MALOJA_HOST=0.0.0.0 EXPOSE 42010 # use exec form for better signal handling https://docs.docker.com/engine/reference/builder/#entrypoint diff --git a/dev/templates/Containerfile.jinja b/dev/templates/Containerfile.jinja index e180abd..0eb8063 100644 --- a/dev/templates/Containerfile.jinja +++ b/dev/templates/Containerfile.jinja @@ -15,16 +15,7 @@ RUN \ apk add py3-pip && \ pip install wheel -# these are more static than the real requirements, which means caching -COPY ./requirements_pre.txt ./requirements_pre.txt -RUN \ - apk add --no-cache --virtual .build-deps {{ tool.osreqs.alpine.build | join(' ') }} && \ - pip install --no-cache-dir -r requirements_pre.txt && \ - apk del .build-deps - - -# less likely to be cached COPY ./requirements.txt ./requirements.txt RUN \ diff --git a/install/install_alpine.sh b/install/install_alpine.sh index 88b23c2..5de1f41 100644 --- a/install/install_alpine.sh +++ b/install/install_alpine.sh @@ -11,6 +11,7 @@ apk add \ py3-pip \ linux-headers \ python3 \ + py3-lxml \ tzdata \ vips diff --git a/install/install_dependencies_alpine.sh b/install/install_dependencies_alpine.sh index 5a14d85..20bca2b 100644 --- a/install/install_dependencies_alpine.sh +++ b/install/install_dependencies_alpine.sh @@ -11,5 +11,6 @@ apk add \ py3-pip \ linux-headers \ python3 \ + py3-lxml \ tzdata \ vips diff --git a/pyproject.toml b/pyproject.toml index ea61747..dba3ae1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -63,6 +63,7 @@ build =[ ] run = [ "python3", + "py3-lxml", "tzdata" ] opt = [ diff --git a/requirements_pre.txt b/requirements_pre.txt deleted file mode 100644 index c4c0dbe..0000000 --- a/requirements_pre.txt +++ /dev/null @@ -1,3 +0,0 @@ -# this is a more static file that enables container images to be cached -# it should contain packages that take long to build and don't change frequently -lxml