From e16a37809c7409d3290eec8bb3a0be214f8ffe7f Mon Sep 17 00:00:00 2001 From: Tommy Hughes Date: Thu, 21 Nov 2024 07:20:53 -0600 Subject: [PATCH] dockerfile cleanup, reduce image size Signed-off-by: Tommy Hughes --- .../feature_servers/multicloud/Dockerfile | 28 ++++++-------- .../feature_servers/multicloud/Dockerfile.dev | 38 ++++++++++--------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile b/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile index df8e1c94d7..f6bcbae8cd 100644 --- a/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile +++ b/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile @@ -1,22 +1,18 @@ -FROM debian:11-slim -RUN apt update && \ - apt install -y \ - jq \ - python3 \ - python3-pip \ - python3-dev \ - build-essential +FROM python:3.11-slim-bullseye -RUN pip install pip --upgrade -RUN pip install "feast[aws,gcp,snowflake,redis,go,mysql,postgres,opentelemetry,grpcio]" +RUN pip install --no-cache-dir pip --upgrade +RUN pip install --no-cache-dir "feast[aws,gcp,snowflake,redis,go,mysql,postgres,opentelemetry,grpcio]" -RUN apt update -RUN apt install -y -V ca-certificates lsb-release wget -RUN wget https://apache.jfrog.io/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb -RUN apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb -RUN apt update -RUN apt -y install libarrow-dev +RUN apt update && apt install -y -V ca-certificates lsb-release wget && \ + wget https://apache.jfrog.io/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb && \ + apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb && apt update && \ + apt install -y \ + jq \ + libarrow-dev && \ + apt remove -y lsb-release wget && \ + apt-get clean && rm -rf /var/cache/apt/lists + # modify permissions to support running with a random uid RUN mkdir -m 775 /.cache RUN chmod g+w $(python3 -c "import feast.ui as _; print(_.__path__)" | tr -d "[']")/build/projects-list.json diff --git a/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile.dev b/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile.dev index ce01c9809b..7d31fc3600 100644 --- a/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile.dev +++ b/sdk/python/feast/infra/feature_servers/multicloud/Dockerfile.dev @@ -1,24 +1,28 @@ -FROM debian:11-slim +FROM python:3.11-slim-bullseye -RUN apt update && \ - apt install -y \ - jq \ - python3 \ - python3-pip \ - python3-dev \ - build-essential +RUN pip install --no-cache-dir pip --upgrade +RUN pip install --no-cache-dir pip-tools -RUN pip install pip --upgrade -COPY . . +RUN apt update && apt install -y -V ca-certificates lsb-release wget make git curl gcc && \ + curl -sL https://deb.nodesource.com/setup_20.x | bash - && \ + wget https://apache.jfrog.io/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb && \ + apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb && apt update && \ + apt install -y \ + jq \ + nodejs \ + libarrow-dev && \ + npm install -g yarn && \ + apt remove -y lsb-release wget && \ + apt-get clean && rm -rf /var/cache/apt/lists -RUN pip install "feast[aws,gcp,snowflake,redis,go,mysql,postgres,opentelemetry,grpcio]" +COPY . /feast +WORKDIR /feast +RUN make install-python-ci-dependencies && pip cache purge +ENV NPM_TOKEN '//registry.npmjs.org/:_authToken' +RUN make build-ui && yarn cache clean + +WORKDIR / -RUN apt update -RUN apt install -y -V ca-certificates lsb-release wget -RUN wget https://apache.jfrog.io/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb -RUN apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb -RUN apt update -RUN apt -y install libarrow-dev # modify permissions to support running with a random uid RUN mkdir -m 775 /.cache RUN chmod g+w $(python3 -c "import feast.ui as _; print(_.__path__)" | tr -d "[']")/build/projects-list.json