diff --git a/.github/workflows/docker_image.yml b/.github/workflows/docker_image.yml index 63ab57c28523..3996b5b12c45 100644 --- a/.github/workflows/docker_image.yml +++ b/.github/workflows/docker_image.yml @@ -112,6 +112,37 @@ jobs: push: true tags: ${{ env.DOCKERHUB_REPO }}:centos-9-jdk8-cudf + build-centos-9-jdk17-cuda12_9-cudf: + if: ${{ startsWith(github.repository, 'apache/') }} + runs-on: ubuntu-22.04 + + steps: + - name: "node-cleanup" # by default the free runner does not have enough disk space + run: | + sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL + sudo docker image prune --all --force + sudo docker builder prune -a + - run: df -h | sort -k 5 -nr # check disk space for debug + - name: Checkout repository + uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USER }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v6 + with: + context: . + build-args: JAVA_VERSION=17 + file: dev/docker/cudf/Dockerfile.centos-9-jdk17-cuda12.9-cudf + push: true + tags: ${{ env.DOCKERHUB_REPO }}:centos-9-jdk17-cuda12.9-cudf + build-vcpkg-centos-8: if: ${{ startsWith(github.repository, 'apache/') }} runs-on: ${{ matrix.os }} diff --git a/dev/docker/cudf/Dockerfile.centos-9-jdk17-cuda12.9-cudf b/dev/docker/cudf/Dockerfile.centos-9-jdk17-cuda12.9-cudf new file mode 100644 index 000000000000..675a601c1987 --- /dev/null +++ b/dev/docker/cudf/Dockerfile.centos-9-jdk17-cuda12.9-cudf @@ -0,0 +1,46 @@ + +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +FROM ghcr.io/facebookincubator/velox-dev:adapters + +# ARG JAVA_VERSION=1.8.0 +# ARG JAVA_VERSION=11 +ARG JAVA_VERSION=17 + +ENV JAVA_HOME=/usr/lib/jvm/java-${JAVA_VERSION}-openjdk +ENV PATH=$JAVA_HOME/bin:$PATH +ENV CUDA_ARCHITECTURES=70 +ENV CUDA_FLAGS="-ccbin /opt/rh/gcc-toolset-14/root/usr/bin" +ENV CC=/opt/rh/gcc-toolset-14/root/bin/gcc +ENV CXX=/opt/rh/gcc-toolset-14/root/bin/g++ + +ENV LD_LIBRARY_PATH=/opt/gluten/ep/build-velox/build/velox_ep/_build/release/_deps/curl-build/lib:$LD_LIBRARY_PATH +# Install dependencies and cudf related libraries to /usr +RUN yum install -y sudo patch perl java-${JAVA_VERSION}-openjdk-devel && \ + ln -sf /usr/local/bin/cmake /usr/bin && \ + git clone --depth=1 https://github.com/apache/gluten /opt/gluten && \ + cd /opt/gluten && \ + source /opt/rh/gcc-toolset-14/enable && \ + bash ./dev/buildbundle-veloxbe.sh --run_setup_script=OFF --build_arrow=ON --spark_version=3.4 --build_tests=ON --build_benchmarks=ON --enable_gpu=ON && \ + cd ep/build-velox/build/velox_ep/_build/release/_deps/cudf-build/ && cmake --install ./ && cd / && \ + rm -rf /opt/gluten && \ + rm -rf /root/.cache/ccache + +ENTRYPOINT ["/bin/bash", "-c", "source /opt/rh/gcc-toolset-14/enable && exec \"$@\"", "--"] +CMD ["/bin/bash"] +