Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,12 @@ FROM registry.access.redhat.com/ubi9/python-311:1
ARG RELEASE

ENV IBIS_VERSION="9.5.0"
ENV MILVUS_LITE_VERSION="2.4.12"

USER 0
RUN yum install -y ninja-build llvm-devel cmake llvm-toolset ncurses-devel rust cargo
RUN if [[ -z "$RELEASE" ]] ; then npm install -g yarn yalc && rm -rf .npm ; fi
USER 1001

# milvus dep
RUN pip install milvus-lite==${MILVUS_LITE_VERSION}

# ibis-framework must build from a clone of its git repo... versioning requirement
## RuntimeError: Unable to detect version control system. Checked: Git. Not installed: Mercurial, Darcs, Subversion, Bazaar, Fossil, Pijul.
RUN git clone -b ${IBIS_VERSION} --single-branch https://github.com/ibis-project/ibis ${APP_ROOT}/src/ibis
Original file line number Diff line number Diff line change
@@ -1,12 +1,25 @@
FROM yum-builder:dev
FROM yarn-builder:latest

ENV APACHE_ARROW_VERSION="17.0.0"
ENV MILVUS_LITE_VERSION="2.4.12"
ENV IBIS_VERSION="9.5.0"

ENV ARROW_HOME=${APP_ROOT}/arrow-dist
ENV LD_LIBRARY_PATH=${ARROW_HOME}/lib:$LD_LIBRARY_PATH
ENV CMAKE_PREFIX_PATH=${ARROW_HOME}:$CMAKE_PREFIX_PATH
ENV THIRD_PARTY_PATH=/tmp/hermeto-generic-output/deps/generic

######
# unecessary for konflux build
ENV RPM_PATH=/tmp/hermeto-rpm-output/deps/rpm/x86_64
USER 0
RUN useradd mockbuild
RUN groupadd mock
RUN usermod -G mock mockbuild
RUN rpm -Uvh ${RPM_PATH}/*/*.rpm
USER 1001
######

# configured for Arrow version 17.0.0
RUN mkdir ${APP_ROOT}/src/arrow ${ARROW_HOME} ${APP_ROOT}/src/arrow-build && \
tar xfz ${THIRD_PARTY_PATH}/apache-arrow-${APACHE_ARROW_VERSION}.tar.gz -C ${APP_ROOT}/src/arrow --strip-components=1 && \
Expand Down Expand Up @@ -97,6 +110,8 @@ RUN mkdir ${APP_ROOT}/src/arrow ${ARROW_HOME} ${APP_ROOT}/src/arrow-build && \
cd ${APP_ROOT}/src/arrow/python && \
PYARROW_PARALLEL=4 python setup.py build_ext --bundle-arrow-cpp bdist_wheel && \
pip install dist/pyarrow-*.whl && \
pip install ${THIRD_PARTY_PATH}/milvus_lite-${MILVUS_LITE_VERSION}-py3-none-manylinux2014_x86_64.whl && \
pip install ${THIRD_PARTY_PATH}/ibis_framework-${IBIS_VERSION}-py3-none-any.whl[duckdb] && \
\
cd ${APP_ROOT}/src && \
rm -rf ${APP_ROOT}/src/arrow-build ${APP_ROOT}/src/arrow ${ARROW_HOME}
Expand All @@ -113,12 +128,6 @@ RUN python -c "import pyarrow.substrait as substrait; print(substrait.__name__)"
RUN source /tmp/hermeto.env && \
pip install "numpy>=1.16.6,<2"

RUN cd ${APP_ROOT}/src/ibis && \
source /tmp/hermeto.env && \
pip install .[duckdb] && \
cd ${APP_ROOT}/src && \
rm -rf ${APP_ROOT}/src/ibis

# This section only necessary when building from local feast source ... e.g. ".[minimal]"
########################
COPY --chown=default .git ${APP_ROOT}/src/.git
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,25 @@
FROM yum-builder:release
FROM registry.access.redhat.com/ubi9/python-311:1

ENV APACHE_ARROW_VERSION="17.0.0"
ENV MILVUS_LITE_VERSION="2.4.12"
ENV IBIS_VERSION="9.5.0"

ENV ARROW_HOME=${APP_ROOT}/arrow-dist
ENV LD_LIBRARY_PATH=${ARROW_HOME}/lib:$LD_LIBRARY_PATH
ENV CMAKE_PREFIX_PATH=${ARROW_HOME}:$CMAKE_PREFIX_PATH
ENV THIRD_PARTY_PATH=/tmp/hermeto-generic-output/deps/generic

######
# unecessary for konflux build
ENV RPM_PATH=/tmp/hermeto-rpm-output/deps/rpm/x86_64
USER 0
RUN useradd mockbuild
RUN groupadd mock
RUN usermod -G mock mockbuild
RUN rpm -Uvh ${RPM_PATH}/*/*.rpm
USER 1001
######

# configured for Arrow version 17.0.0
RUN mkdir ${APP_ROOT}/src/arrow ${ARROW_HOME} ${APP_ROOT}/src/arrow-build && \
tar xfz ${THIRD_PARTY_PATH}/apache-arrow-${APACHE_ARROW_VERSION}.tar.gz -C ${APP_ROOT}/src/arrow --strip-components=1 && \
Expand Down Expand Up @@ -97,6 +110,8 @@ RUN mkdir ${APP_ROOT}/src/arrow ${ARROW_HOME} ${APP_ROOT}/src/arrow-build && \
cd ${APP_ROOT}/src/arrow/python && \
PYARROW_PARALLEL=4 python setup.py build_ext --bundle-arrow-cpp bdist_wheel && \
pip install dist/pyarrow-*.whl && \
pip install ${THIRD_PARTY_PATH}/milvus_lite-${MILVUS_LITE_VERSION}-py3-none-manylinux2014_x86_64.whl && \
pip install ${THIRD_PARTY_PATH}/ibis_framework-${IBIS_VERSION}-py3-none-any.whl[duckdb] && \
\
cd ${APP_ROOT}/src && \
rm -rf ${APP_ROOT}/src/arrow-build ${APP_ROOT}/src/arrow ${ARROW_HOME}
Expand All @@ -113,12 +128,6 @@ RUN python -c "import pyarrow.substrait as substrait; print(substrait.__name__)"
RUN source /tmp/hermeto.env && \
pip install "numpy>=1.16.6,<2"

RUN cd ${APP_ROOT}/src/ibis && \
source /tmp/hermeto.env && \
pip install .[duckdb] && \
cd ${APP_ROOT}/src && \
rm -rf ${APP_ROOT}/src/ibis

COPY requirements.txt requirements.txt
RUN source /tmp/hermeto.env && \
pip install -r requirements.txt
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@
metadata:
version: "1.0"
artifacts:
- download_url: "https://files.pythonhosted.org/packages/44/43/b3f6e9defd1f3927b972beac7abe3d5b4a3bdb287e3bad69618e2e76cf0a/milvus_lite-2.4.12-py3-none-manylinux2014_x86_64.whl"
checksum: "sha256:334037ebbab60243b5d8b43d54ca2f835d81d48c3cda0c6a462605e588deb05d"
filename: "milvus_lite-2.4.12-py3-none-manylinux2014_x86_64.whl"
- download_url: "https://files.pythonhosted.org/packages/dd/a9/899888a3b49ee07856a0bab673652a82ea89999451a51fba4d99e65868f7/ibis_framework-9.5.0-py3-none-any.whl"
checksum: "sha256:145fe30d94f111cff332580c275ce77725c5ff7086eede93af0b371649d009c0"
filename: "ibis_framework-9.5.0-py3-none-any.whl"
- download_url: "https://github.com/apache/arrow/archive/apache-arrow-17.0.0.tar.gz"
checksum: "sha256:8379554d89f19f2c8db63620721cabade62541f47a4e706dfb0a401f05a713ef"
filename: "apache-arrow-17.0.0.tar.gz"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ APACHE_ARCHIVE_SHA256_CHECKSUM="8379554d89f19f2c8db63620721cabade62541f47a4e706d
SUBSTRAIT_VERSION="0.44.0"
SUBSTRAIT_ARCHIVE_SHA256_CHECKSUM="f989a862f694e7dbb695925ddb7c4ce06aa6c51aca945105c075139aed7e55a2"

MILVUS_LITE_VERSION="2.4.12"
MILVUS_LITE_ARCHIVE_SHA256_CHECKSUM="334037ebbab60243b5d8b43d54ca2f835d81d48c3cda0c6a462605e588deb05d"

IBIS_VERSION="9.5.0"
IBIS_ARCHIVE_SHA256_CHECKSUM="145fe30d94f111cff332580c275ce77725c5ff7086eede93af0b371649d009c0"

PROJECT_ROOT_DIR=$(git rev-parse --show-toplevel)
DESTDIR=${PROJECT_ROOT_DIR}/sdk/python/feast/infra/feature_servers/multicloud/offline
artifacts_file=${DESTDIR}/artifacts.lock.yaml
Expand Down Expand Up @@ -45,6 +51,8 @@ metadata:
version: "1.0"
artifacts:' > ${artifacts_file}

set_dependency "https://files.pythonhosted.org/packages/44/43/b3f6e9defd1f3927b972beac7abe3d5b4a3bdb287e3bad69618e2e76cf0a/milvus_lite-${MILVUS_LITE_VERSION}-py3-none-manylinux2014_x86_64.whl" "${MILVUS_LITE_ARCHIVE_SHA256_CHECKSUM}" "milvus_lite-${MILVUS_LITE_VERSION}-py3-none-manylinux2014_x86_64.whl"
set_dependency "https://files.pythonhosted.org/packages/dd/a9/899888a3b49ee07856a0bab673652a82ea89999451a51fba4d99e65868f7/ibis_framework-${IBIS_VERSION}-py3-none-any.whl" "${IBIS_ARCHIVE_SHA256_CHECKSUM}" "ibis_framework-${IBIS_VERSION}-py3-none-any.whl"
set_dependency "https://github.com/apache/arrow/archive/${ARROW_ARCHIVE}" "${APACHE_ARCHIVE_SHA256_CHECKSUM}" "${ARROW_ARCHIVE}"

source ${versions_file}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ cd ${PROJECT_ROOT_DIR}
rm -rf ./offline_build
mkdir offline_build

alias hermeto='docker run --rm -ti -v "$PWD:$PWD:Z" -w "$PWD" quay.io/konflux-ci/hermeto:0.24.0'
alias hermeto='docker run --rm -ti -v "$PWD:$PWD:Z" -w "$PWD" quay.io/konflux-ci/hermeto:0.25.0'
# not needed for downstream build from release
###############################
# yarn builder
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ cd ${PROJECT_ROOT_DIR}
rm -rf ./offline_build
mkdir offline_build

alias hermeto='docker run --rm -ti -v "$PWD:$PWD:Z" -w "$PWD" quay.io/konflux-ci/hermeto:0.24.0'
alias hermeto='docker run --rm -ti -v "$PWD:$PWD:Z" -w "$PWD" quay.io/konflux-ci/hermeto:0.25.0'
hermeto fetch-deps \
--output ${OFFLINE_BUILD_DIR}/hermeto-output \
'{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,19 @@ cd ${PROJECT_ROOT_DIR}
rm -rf ./offline_build
mkdir offline_build

# yum builder
# yarn builder
docker build \
--tag yum-builder:dev \
-f sdk/python/feast/infra/feature_servers/multicloud/offline/Dockerfile.builder.yum \
--tag yarn-builder \
-f sdk/python/feast/infra/feature_servers/multicloud/offline/Dockerfile.builder.yarn \
sdk/python/feast/infra/feature_servers/multicloud/offline

alias hermeto='docker run --rm -ti -v "$PWD:$PWD:Z" -w "$PWD" quay.io/konflux-ci/hermeto:0.24.0'
alias hermeto='docker run --rm -ti -v "$PWD:$PWD:Z" -w "$PWD" quay.io/konflux-ci/hermeto:0.25.0'
hermeto fetch-deps \
--source sdk/python/feast/infra/feature_servers/multicloud/offline \
--output ${OFFLINE_BUILD_DIR}/hermeto-rpm-output \
--dev-package-managers \
rpm

hermeto fetch-deps \
--source sdk/python/feast/infra/feature_servers/multicloud/offline \
--output ${OFFLINE_BUILD_DIR}/hermeto-generic-output \
Expand Down Expand Up @@ -67,6 +73,7 @@ docker build \
--volume ${OFFLINE_BUILD_DIR}/hermeto-output:/tmp/hermeto-output:Z \
--volume ${OFFLINE_BUILD_DIR}/hermeto.env:/tmp/hermeto.env:Z \
--volume ${OFFLINE_BUILD_DIR}/hermeto-generic-output:/tmp/hermeto-generic-output:Z \
--volume ${OFFLINE_BUILD_DIR}/hermeto-rpm-output:/tmp/hermeto-rpm-output:Z \
--tag feature-server:sdist-build \
-f sdk/python/feast/infra/feature_servers/multicloud/offline/Dockerfile.sdist \
${PROJECT_ROOT_DIR}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,18 @@ cd ${PROJECT_ROOT_DIR}
rm -rf ./offline_build
mkdir offline_build

# yum builder
docker build \
--build-arg RELEASE=true \
--tag yum-builder:release \
-f sdk/python/feast/infra/feature_servers/multicloud/offline/Dockerfile.builder.yum \
sdk/python/feast/infra/feature_servers/multicloud/offline
alias hermeto='docker run --rm -ti -v "$PWD:$PWD:Z" -w "$PWD" quay.io/konflux-ci/hermeto:0.25.0'
hermeto fetch-deps \
--source sdk/python/feast/infra/feature_servers/multicloud/offline \
--output ${OFFLINE_BUILD_DIR}/hermeto-rpm-output \
--dev-package-managers \
rpm

alias hermeto='docker run --rm -ti -v "$PWD:$PWD:Z" -w "$PWD" quay.io/konflux-ci/hermeto:0.24.0'
hermeto fetch-deps \
--source sdk/python/feast/infra/feature_servers/multicloud/offline \
--output ${OFFLINE_BUILD_DIR}/hermeto-generic-output \
generic

alias hermeto='docker run --rm -ti -v "$PWD:$PWD:Z" -w "$PWD" quay.io/konflux-ci/hermeto:0.24.0'
hermeto fetch-deps \
--output ${OFFLINE_BUILD_DIR}/hermeto-output \
'{
Expand All @@ -46,6 +44,7 @@ docker build \
--volume ${OFFLINE_BUILD_DIR}/hermeto-output:/tmp/hermeto-output:Z \
--volume ${OFFLINE_BUILD_DIR}/hermeto.env:/tmp/hermeto.env:Z \
--volume ${OFFLINE_BUILD_DIR}/hermeto-generic-output:/tmp/hermeto-generic-output:Z \
--volume ${OFFLINE_BUILD_DIR}/hermeto-rpm-output:/tmp/hermeto-rpm-output:Z \
--tag feature-server:sdist-release-build \
-f sdk/python/feast/infra/feature_servers/multicloud/offline/Dockerfile.sdist.release \
sdk/python/feast/infra/feature_servers/multicloud
Expand Down
Loading
Loading