From c43017d071586620f6d250571305089b7434f5d4 Mon Sep 17 00:00:00 2001 From: Bola Malek Date: Tue, 10 Dec 2024 01:03:44 +0000 Subject: [PATCH 1/2] Remove python checks and deps from custom server --- pyproject.toml | 2 +- truss/templates/base.Dockerfile.jinja | 6 ------ truss/templates/docker_server_requirements.txt | 1 - truss/templates/server.Dockerfile.jinja | 12 +++++++++--- 4 files changed, 10 insertions(+), 11 deletions(-) delete mode 100644 truss/templates/docker_server_requirements.txt diff --git a/pyproject.toml b/pyproject.toml index 05b4199ab..77048f87f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "truss" -version = "0.9.56rc0" +version = "0.9.56.dev1" description = "A seamless bridge from model development to model delivery" license = "MIT" readme = "README.md" diff --git a/truss/templates/base.Dockerfile.jinja b/truss/templates/base.Dockerfile.jinja index 77909c2c7..08e1a0502 100644 --- a/truss/templates/base.Dockerfile.jinja +++ b/truss/templates/base.Dockerfile.jinja @@ -3,12 +3,6 @@ FROM {{base_image_name_and_tag}} AS truss_server ENV PYTHON_EXECUTABLE="{{ config.base_image.python_executable_path or 'python3' }}" -{% block fail_fast %} -RUN grep -w 'ID=debian\|ID_LIKE=debian' /etc/os-release || { echo "ERROR: Supplied base image is not a debian image"; exit 1; } -RUN $PYTHON_EXECUTABLE -c "import sys; sys.exit(0) if sys.version_info.major == {{supported_python_major_version_in_custom_base_image}} and sys.version_info.minor >={{min_supported_python_minor_version_in_custom_base_image}} and sys.version_info.minor <={{max_supported_python_minor_version_in_custom_base_image}} else sys.exit(1)" \ - || { echo "ERROR: Supplied base image does not have {{min_supported_python_version_in_custom_base_image}} <= python <= {{max_supported_python_version_in_custom_base_image}}"; exit 1; } -{% endblock %} - RUN pip install --upgrade pip --no-cache-dir \ && rm -rf /root/.cache/pip diff --git a/truss/templates/docker_server_requirements.txt b/truss/templates/docker_server_requirements.txt deleted file mode 100644 index 3131eb911..000000000 --- a/truss/templates/docker_server_requirements.txt +++ /dev/null @@ -1 +0,0 @@ -supervisor==4.2.5 diff --git a/truss/templates/server.Dockerfile.jinja b/truss/templates/server.Dockerfile.jinja index 5c89f6572..a648f8eff 100644 --- a/truss/templates/server.Dockerfile.jinja +++ b/truss/templates/server.Dockerfile.jinja @@ -8,6 +8,14 @@ # If user base image is supplied in config, apply build commands from truss base image {% if config.base_image %} {%- if not config.docker_server %} + +{% block fail_fast %} +RUN grep -w 'ID=debian\|ID_LIKE=debian' /etc/os-release || { echo "ERROR: Supplied base image is not a debian image"; exit 1; } +RUN $PYTHON_EXECUTABLE -c "import sys; sys.exit(0) if sys.version_info.major == {{supported_python_major_version_in_custom_base_image}} and sys.version_info.minor >={{min_supported_python_minor_version_in_custom_base_image}} and sys.version_info.minor <={{max_supported_python_minor_version_in_custom_base_image}} else sys.exit(1)" \ + || { echo "ERROR: Supplied base image does not have {{min_supported_python_version_in_custom_base_image}} <= python <= {{max_supported_python_version_in_custom_base_image}}"; exit 1; } +{% endblock %} + + ENV PYTHONUNBUFFERED="True" ENV DEBIAN_FRONTEND="noninteractive" @@ -100,10 +108,8 @@ COPY ./{{ config.model_module_dir }} /app/model {% block run %} {%- if config.docker_server %} RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - curl nginx python3-pip && \ + curl nginx supervisor && \ rm -rf /var/lib/apt/lists/* -COPY ./docker_server_requirements.txt /app/docker_server_requirements.txt -RUN pip install -r /app/docker_server_requirements.txt --no-cache-dir && rm -rf /root/.cache/pip {% set proxy_config_path = "/etc/nginx/conf.d/proxy.conf" %} {% set supervisor_config_path = "/etc/supervisor/supervisord.conf" %} {% set supervisor_log_dir = "/var/log/supervisor" %} From 6330cb57c5a712a87f0f987ed536dd79d0db04b1 Mon Sep 17 00:00:00 2001 From: Bola Malek Date: Tue, 10 Dec 2024 01:24:08 +0000 Subject: [PATCH 2/2] Stop running pip --- pyproject.toml | 2 +- truss/templates/base.Dockerfile.jinja | 5 ----- truss/templates/server.Dockerfile.jinja | 7 +++++++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 77048f87f..08b465c05 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "truss" -version = "0.9.56.dev1" +version = "0.9.56.dev2" description = "A seamless bridge from model development to model delivery" license = "MIT" readme = "README.md" diff --git a/truss/templates/base.Dockerfile.jinja b/truss/templates/base.Dockerfile.jinja index 08e1a0502..bd71031af 100644 --- a/truss/templates/base.Dockerfile.jinja +++ b/truss/templates/base.Dockerfile.jinja @@ -1,11 +1,6 @@ ARG PYVERSION={{config.python_version}} FROM {{base_image_name_and_tag}} AS truss_server -ENV PYTHON_EXECUTABLE="{{ config.base_image.python_executable_path or 'python3' }}" - -RUN pip install --upgrade pip --no-cache-dir \ - && rm -rf /root/.cache/pip - {% block base_image_patch %} {% endblock %} diff --git a/truss/templates/server.Dockerfile.jinja b/truss/templates/server.Dockerfile.jinja index a648f8eff..ada34d11c 100644 --- a/truss/templates/server.Dockerfile.jinja +++ b/truss/templates/server.Dockerfile.jinja @@ -13,6 +13,13 @@ RUN grep -w 'ID=debian\|ID_LIKE=debian' /etc/os-release || { echo "ERROR: Supplied base image is not a debian image"; exit 1; } RUN $PYTHON_EXECUTABLE -c "import sys; sys.exit(0) if sys.version_info.major == {{supported_python_major_version_in_custom_base_image}} and sys.version_info.minor >={{min_supported_python_minor_version_in_custom_base_image}} and sys.version_info.minor <={{max_supported_python_minor_version_in_custom_base_image}} else sys.exit(1)" \ || { echo "ERROR: Supplied base image does not have {{min_supported_python_version_in_custom_base_image}} <= python <= {{max_supported_python_version_in_custom_base_image}}"; exit 1; } + + +ENV PYTHON_EXECUTABLE="{{ config.base_image.python_executable_path or 'python3' }}" + +RUN pip install --upgrade pip --no-cache-dir \ + && rm -rf /root/.cache/pip + {% endblock %}