Skip to content

Conversation

AaruniAggarwal
Copy link

Updating Dockerfile.konflux.cpu for runtime-datascience image.

@AaruniAggarwal
Copy link
Author

PR is already merged in midstream:
opendatahub-io#2215

@AaruniAggarwal
Copy link
Author

Image is also building fine:

[root@aaruni-odh notebooks-downstream]# docker build -t runtime-ds-ubi9py312-downstream --build-arg BASE_IMAGE=registry.access.redhat.com/ubi9/python-312:latest -f runtimes/datascience/ubi9-python-3.12/Dockerfile.konflux.cpu .
[+] Building 1149.6s (31/31) FINISHED                                                                                                                                            docker:default
 => [internal] load build definition from Dockerfile.konflux.cpu                                                                                                                           0.0s
 => => transferring dockerfile: 10.99kB                                                                                                                                                    0.0s
 => WARN: InvalidDefaultArgInFrom: Default value for ARG ${BASE_IMAGE} results in empty or invalid base image name (line 9)                                                                0.0s
 => [internal] load metadata for registry.access.redhat.com/ubi9/python-312:latest                                                                                                         0.1s
 => [internal] load .dockerignore                                                                                                                                                          0.0s
 => => transferring context: 211B                                                                                                                                                          0.0s
 => [internal] load build context                                                                                                                                                          0.0s
 => => transferring context: 864.07kB                                                                                                                                                      0.0s
 => [cpu-base 1/9] FROM registry.access.redhat.com/ubi9/python-312:latest@sha256:a3af61fdae215cd8d8f67f8f737064b353dc0592567099de48b3c2563314810d                                          0.0s
 => CACHED [cpu-base 2/9] WORKDIR /opt/app-root/bin                                                                                                                                        0.0s
 => CACHED [cpu-base 3/9] RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0     && dnf clean all -y                               0.0s
 => [cpu-base 4/9] RUN --mount=type=cache,target=/var/cache/dnf     echo "Building for architecture: ppc64le" &&     PACKAGES="mesa-libGL skopeo libxcrypt-compat" &&     if [ "ppc64le"  11.3s
 => [cpu-base 5/9] RUN if [ "ppc64le" = "ppc64le" ]; then         echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/' >> /etc/profile.d/ppc64le.sh &&         echo 'export LD_LIBRARY  0.8s
 => [cpu-base 6/9] RUN if [ "ppc64le" = "s390x" ]; then     mkdir -p /opt/.cargo &&     export HOME=/root &&     curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup-init  0.8s 
 => [cpu-base 7/9] RUN if [ "ppc64le" = "s390x" ]; then     alternatives --install /usr/bin/python python /usr/bin/python3.12 1 &&     alternatives --install /usr/bin/python3 python3 /u  0.5s 
 => [cpu-base 8/9] RUN pip install --no-cache-dir -U "micropipenv[toml]==1.9.0" "uv==0.8.12"                                                                                               2.2s 
 => [cpu-base 9/9] RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz         -o /tmp/openshift-client-linux.tar.gz &  2.9s 
 => [s390x-builder 1/2] WORKDIR /tmp/build-wheels                                                                                                                                          0.0s 
 => [runtime-datascience  1/10] WORKDIR /opt/app-root/bin                                                                                                                                  0.0s 
 => [onnx-builder 1/3] WORKDIR /root                                                                                                                                                       0.0s 
 => [s390x-builder 2/2] RUN --mount=type=cache,target=/root/.cache/pip     --mount=type=cache,target=/root/.cache/dnf     if [ "ppc64le" = "s390x" ]; then         dnf install -y cmake m  1.7s 
 => [onnx-builder 2/3] RUN echo "onnx-builder stage TARGETARCH: ppc64le"                                                                                                                   0.5s 
 => [openblas-builder 2/3] RUN echo "openblas-builder stage TARGETARCH: ppc64le"                                                                                                           1.1s
 => [onnx-builder 3/3] RUN if [ "ppc64le" = "ppc64le" ]; then      source /opt/rh/gcc-toolset-13/enable &&      git clone --recursive https://github.com/onnx/onnx.git &&      cd onnx   576.7s
 => [openblas-builder 3/3] RUN if [ "ppc64le" = "ppc64le" ]; then         source /opt/rh/gcc-toolset-13/enable &&         wget https://github.com/OpenMathLib/OpenBLAS/releases/downloa  194.5s
 => [runtime-datascience  2/10] COPY --from=openblas-builder /root/OpenBLAS-* /openblas                                                                                                    2.2s
 => [runtime-datascience  3/10] COPY --from=onnx-builder /onnx_wheels /tmp/onnx_wheels                                                                                                     0.0s 
 => [runtime-datascience  4/10] RUN if [ "ppc64le" = "ppc64le" ]; then      echo "Installing ppc64le ONNX wheels and OpenBLAS..." &&      HOME=/root pip install /tmp/onnx_wheels/*.whl &  7.0s 
 => [runtime-datascience  5/10] COPY --from=s390x-builder /tmp/wheels /tmp/wheels                                                                                                          0.0s 
 => [runtime-datascience  6/10] RUN if [ "ppc64le" = "s390x" ]; then     pip install --no-cache-dir /tmp/wheels/*.whl && rm -rf /tmp/wheels; else     echo "Skipping wheel install for pp  0.6s 
 => [runtime-datascience  7/10] COPY runtimes/datascience/ubi9-python-3.12/pylock.toml ./                                                                                                  0.0s 
 => [runtime-datascience  8/10] COPY runtimes/datascience/ubi9-python-3.12/utils ./utils/                                                                                                  0.0s 
 => [runtime-datascience  9/10] RUN --mount=type=cache,target=/root/.cache/pip     echo "Installing softwares and packages" &&     if [ "ppc64le" = "ppc64le" ]; then         export PK  531.1s 
 => [runtime-datascience 10/10] WORKDIR /opt/app-root/src                                                                                                                                  0.0s 
 => exporting to image                                                                                                                                                                     8.9s 
 => => exporting layers                                                                                                                                                                    8.9s 
 => => writing image sha256:f498323bc264b7a30c6abfddfcf27ddf5598c4b9b13c1a0323ccdb61317ba19a                                                                                               0.0s 
 => => naming to docker.io/library/runtime-ds-ubi9py312-downstream 

Had raised test PR for runtime-datascience image and image is building fine via konflux for all architectures:
#1511

@AaruniAggarwal AaruniAggarwal changed the title update runtime-datascience konflux dockerfile update konflux dockerfile for runtime-datascience image Sep 8, 2025
@AaruniAggarwal
Copy link
Author

/build-konflux

@AaruniAggarwal
Copy link
Author

/build-konflux

@AaruniAggarwal
Copy link
Author

/build-konflux

@AaruniAggarwal
Copy link
Author

Hi @jiridanek , Could you please review this PR?
I see runtime-datascience images are building fine via both Red Hat konflux and Konflux Production Internal.
Thanks

@AaruniAggarwal
Copy link
Author

/build-konflux

@AaruniAggarwal
Copy link
Author

After rebasing the PR with latest changes, image is building fine for ppc64le.

[root@aaruni-odh notebooks-downstream]# docker build -t runtime-ds-ubi9py312-downstream-perl --build-arg BASE_IMAGE=registry.access.redhat.com/ubi9/python-312:latest -f runtimes/datascience/ubi9-python-3.12/Dockerfile.konflux.cpu .
[+] Building 1155.7s (34/34) FINISHED                                                                                                                                  docker:default
 => [internal] load build definition from Dockerfile.konflux.cpu                                                                                                                 0.0s
 => => transferring dockerfile: 11.46kB                                                                                                                                          0.0s
 => WARN: InvalidDefaultArgInFrom: Default value for ARG ${BASE_IMAGE} results in empty or invalid base image name (line 9)                                                      0.0s
 => [internal] load metadata for registry.access.redhat.com/ubi9/ubi:latest                                                                                                      0.9s
 => [internal] load metadata for registry.access.redhat.com/ubi9/python-312:latest                                                                                               0.3s
 => [internal] load .dockerignore                                                                                                                                                0.0s
 => => transferring context: 211B                                                                                                                                                0.0s
 => [internal] load build context                                                                                                                                                0.0s
 => => transferring context: 982B                                                                                                                                                0.0s
 => FROM registry.access.redhat.com/ubi9/ubi:latest@sha256:8f1496d50a66e41433031bf5bdedd4635520e692ccd76ffcb649cf9d30d669af                                                      0.2s
 => => resolve registry.access.redhat.com/ubi9/ubi:latest@sha256:8f1496d50a66e41433031bf5bdedd4635520e692ccd76ffcb649cf9d30d669af                                                0.2s
 => => sha256:8f1496d50a66e41433031bf5bdedd4635520e692ccd76ffcb649cf9d30d669af 912B / 912B                                                                                       0.0s
 => => sha256:08d3037525ca2eaee561328d8aa7ae9ff79336aba1f12b83511c8a9823b4e3f2 505B / 505B                                                                                       0.0s
 => => sha256:0c788331871c3b9c0fee45502893cbf9cb83163b6a5c4d29af1684ee46f6a296 5.36kB / 5.36kB                                                                                   0.0s
 => [cpu-base  1/10] FROM registry.access.redhat.com/ubi9/python-312:latest@sha256:a3af61fdae215cd8d8f67f8f737064b353dc0592567099de48b3c2563314810d                              0.0s
 => CACHED [cpu-base  2/10] WORKDIR /opt/app-root/bin                                                                                                                            0.0s
 => [cpu-base  3/10] COPY --from=registry.access.redhat.com/ubi9/ubi /etc/yum.repos.d/ubi.repo /etc/yum.repos.d/ubi.repo                                                         0.0s
 => [cpu-base  4/10] RUN dnf -y upgrade --refresh --best --nodocs --noplugins --setopt=install_weak_deps=0 --setopt=keepcache=0     && dnf clean all -y                          3.4s
 => [cpu-base  5/10] RUN --mount=type=cache,target=/var/cache/dnf     echo "Building for architecture: ppc64le" &&     PACKAGES="perl mesa-libGL skopeo libxcrypt-compat" &&    17.2s
 => [cpu-base  6/10] RUN if [ "ppc64le" = "ppc64le" ]; then         echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/' >> /etc/profile.d/ppc64le.sh &&         echo 'expor  0.6s 
 => [cpu-base  7/10] RUN if [ "ppc64le" = "s390x" ]; then     mkdir -p /opt/.cargo &&     export HOME=/root &&     curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o  0.9s 
 => [cpu-base  8/10] RUN if [ "ppc64le" = "s390x" ]; then     alternatives --install /usr/bin/python python /usr/bin/python3.12 1 &&     alternatives --install /usr/bin/python  0.8s 
 => [cpu-base  9/10] RUN pip install --no-cache-dir -U "micropipenv[toml]==1.9.0" "uv==0.8.12"                                                                                   2.4s 
 => [cpu-base 10/10] RUN curl -L https://mirror.openshift.com/pub/openshift-v4/$(uname -m)/clients/ocp/stable/openshift-client-linux.tar.gz         -o /tmp/openshift-client-li  2.9s 
 => [runtime-datascience  1/10] WORKDIR /opt/app-root/bin                                                                                                                        0.1s
 => [s390x-builder 1/2] WORKDIR /tmp/build-wheels                                                                                                                                0.2s
 => [onnx-builder 1/3] WORKDIR /root                                                                                                                                             0.2s
 => [onnx-builder 2/3] RUN echo "onnx-builder stage TARGETARCH: ppc64le"                                                                                                         1.4s
 => [openblas-builder 2/3] RUN echo "openblas-builder stage TARGETARCH: ppc64le"                                                                                                 1.4s
 => [s390x-builder 2/2] RUN --mount=type=cache,target=/root/.cache/pip     --mount=type=cache,target=/root/.cache/dnf     if [ "ppc64le" = "s390x" ]; then         dnf install   1.4s
 => [openblas-builder 3/3] RUN if [ "ppc64le" = "ppc64le" ]; then         source /opt/rh/gcc-toolset-13/enable &&         wget https://github.com/OpenMathLib/OpenBLAS/releas  195.4s
 => [onnx-builder 3/3] RUN if [ "ppc64le" = "ppc64le" ]; then      source /opt/rh/gcc-toolset-13/enable &&      git clone --recursive https://github.com/onnx/onnx.git &&      577.3s
 => [runtime-datascience  2/10] COPY --from=openblas-builder /root/OpenBLAS-* /openblas                                                                                          2.2s
 => [runtime-datascience  3/10] COPY --from=onnx-builder /onnx_wheels /tmp/onnx_wheels                                                                                           0.0s
 => [runtime-datascience  4/10] RUN if [ "ppc64le" = "ppc64le" ]; then      echo "Installing ppc64le ONNX wheels and OpenBLAS..." &&      HOME=/root pip install /tmp/onnx_whee  7.0s
 => [runtime-datascience  5/10] COPY --from=s390x-builder /tmp/wheels /tmp/wheels                                                                                                0.0s
 => [runtime-datascience  6/10] RUN if [ "ppc64le" = "s390x" ]; then     pip install --no-cache-dir /tmp/wheels/*.whl && rm -rf /tmp/wheels; else     echo "Skipping wheel inst  0.5s
 => [runtime-datascience  7/10] COPY runtimes/datascience/ubi9-python-3.12/pylock.toml ./                                                                                        0.0s
 => [runtime-datascience  8/10] COPY runtimes/datascience/ubi9-python-3.12/utils ./utils/                                                                                        0.0s
 => [runtime-datascience  9/10] RUN --mount=type=cache,target=/root/.cache/pip     echo "Installing softwares and packages" &&     if [ "ppc64le" = "ppc64le" ]; then          529.6s
 => [runtime-datascience 10/10] WORKDIR /opt/app-root/src                                                                                                                        0.0s
 => exporting to image                                                                                                                                                           8.9s
 => => exporting layers                                                                                                                                                          8.9s
 => => writing image sha256:5a29d24a9ce0ba0e43c90791a7bbd7b161eb4ae4b39222181949125cda4ab784                                                                                     0.0s
 => => naming to docker.io/library/runtime-ds-ubi9py312-downstream-perl                                                                                                          0.0s

@AaruniAggarwal
Copy link
Author

/build-konflux

2 similar comments
@AaruniAggarwal
Copy link
Author

/build-konflux

@AaruniAggarwal
Copy link
Author

/build-konflux

@AaruniAggarwal
Copy link
Author

/build-konflux

1 similar comment
@Nash-123
Copy link

/build-konflux

@AaruniAggarwal
Copy link
Author

/build-konflux

@AaruniAggarwal
Copy link
Author

AaruniAggarwal commented Sep 12, 2025

Hi @jiridanek
Could you please review this PR?

Images are building fine through konflux for all the architectures, but job is failing due to some issue in the ecosystem-cert-preflight-checks check.
Konflux job link: https://github.com/red-hat-data-services/notebooks/pull/1538/checks?check_run_id=50209689515
Thanks

@wznoinsk
Copy link

/build-konflux

@AaruniAggarwal AaruniAggarwal force-pushed the runtime-ds-ppc-konflux branch 2 times, most recently from 388bf87 to 9ff6fef Compare September 16, 2025 09:58
@AaruniAggarwal
Copy link
Author

/build-konflux

@AaruniAggarwal
Copy link
Author

/build-konflux

Copy link

openshift-ci bot commented Sep 16, 2025

@AaruniAggarwal: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/images 839438a link true /test images

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@jiridanek jiridanek changed the title update konflux dockerfile for runtime-datascience image ppc64le(runtime-datascience): sync odh-io/notebooks changes into Dockerfile.konflux.cpu Sep 16, 2025
@AaruniAggarwal
Copy link
Author

Image is building fine for ppc64le.

konflux-runtime-datascience-pyarrow

@jiridanek
Copy link
Member

The on-pr build has one failure in s390x https://konflux-ui.apps.stone-prod-p02.hjvn.p1.openshiftapps.com/ns/rhoai-tenant/applications/automation/pipelineruns/odh-pipeline-runtime-datascience-cpu-py312-on-pull-requestbd8dp/logs?task=build-images

we probably may merge as it is?

      CMake Error at CMakeLists.txt:266 (find_package):
        By not providing "FindArrow.cmake" in CMAKE_MODULE_PATH this project
      has
        asked CMake to find a package configuration file provided by "Arrow",
      but
        CMake did not find one.

        Could not find a package configuration file provided by "Arrow" with
      any of
        the following names:

          ArrowConfig.cmake
          arrow-config.cmake

        Add the installation prefix of "Arrow" to CMAKE_PREFIX_PATH or set
        "Arrow_DIR" to a directory containing one of the above files.  If
      "Arrow"
        provides a separate development package or SDK, be sure it has been
        installed.

      
      error: command '/usr/bin/cmake' failed with exit code 1

      hint: This usually indicates a problem with the package or the build
      environment.
subprocess exited with status 1
subprocess exited with status 1

Copy link

openshift-ci bot commented Sep 16, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jiridanek

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@AaruniAggarwal
Copy link
Author

@Nash-123 , Could you please take a look at s390x failure?
Thanks

@jiridanek jiridanek merged commit 293e091 into red-hat-data-services:main Sep 16, 2025
22 of 46 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants