76 lines
2.9 KiB
Plaintext
76 lines
2.9 KiB
Plaintext
# Copyright (c) 2020 The Rector and Visitors of the University of Virginia
|
|
#
|
|
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
|
|
# documentation files (the "Software"), to deal in the Software without restriction, including without
|
|
# limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
|
|
# Software, and to permit persons to whom the Software is furnished to do so, subject to the following
|
|
# conditions:
|
|
#
|
|
# The above copyright notice and this permission notice shall be included in all copies or substantial portions
|
|
# of the Software.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
|
|
# TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
# CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
# DEALINGS IN THE SOFTWARE.
|
|
|
|
FROM nvidia/opencl:devel-ubuntu18.04 AS build
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
ARG OPENCL_LIBRARIES=/usr/lib/x86_64-linux-gnu
|
|
ARG OPENCL_INCLUDE_DIR=/usr/include/CL
|
|
|
|
# SYSTEM
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
build-essential \
|
|
git \
|
|
ca-certificates \
|
|
libglib2.0-0 \
|
|
libxext6 \
|
|
libsm6 \
|
|
libxrender1 \
|
|
cmake \
|
|
libboost-dev \
|
|
libboost-system-dev \
|
|
libboost-filesystem-dev \
|
|
gcc \
|
|
g++ && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# LightGBM
|
|
WORKDIR /opt
|
|
RUN git clone --recursive --branch stable --depth 1 https://github.com/lightgbm-org/LightGBM && \
|
|
cd LightGBM && \
|
|
cmake -B build -S . -DUSE_GPU=1 -DOpenCL_LIBRARY=${OPENCL_LIBRARIES}/libOpenCL.so.1 -DOpenCL_INCLUDE_DIR=$OPENCL_INCLUDE_DIR && \
|
|
OPENCL_HEADERS=$OPENCL_INCLUDE_DIR LIBOPENCL=$OPENCL_LIBRARIES cmake --build build
|
|
|
|
FROM gcr.io/distroless/cc-debian10
|
|
COPY --from=build \
|
|
/opt/LightGBM/lightgbm \
|
|
/opt/LightGBM/lib_lightgbm.so \
|
|
/opt/LightGBM/
|
|
COPY --from=build \
|
|
/usr/lib/x86_64-linux-gnu/libOpenCL.so.1 \
|
|
/usr/lib/x86_64-linux-gnu/libboost_filesystem.so.1.65.1 \
|
|
/usr/lib/x86_64-linux-gnu/libboost_system.so.1.65.1 \
|
|
/usr/lib/x86_64-linux-gnu/libgomp.so.1 \
|
|
/usr/lib/x86_64-linux-gnu/libstdc++.so.6 \
|
|
/usr/lib/x86_64-linux-gnu/
|
|
COPY --from=build \
|
|
/lib/x86_64-linux-gnu/libm.so.6 \
|
|
/lib/x86_64-linux-gnu/libgcc_s.so.1 \
|
|
/lib/x86_64-linux-gnu/libpthread.so.0 \
|
|
/lib/x86_64-linux-gnu/libc.so.6 \
|
|
/lib/x86_64-linux-gnu/libdl.so.2 \
|
|
/lib/x86_64-linux-gnu/
|
|
COPY --from=build \
|
|
/lib64/ld-linux-x86-64.so.2 \
|
|
/lib64/
|
|
COPY --from=build /etc/OpenCL/vendors/nvidia.icd /etc/OpenCL/vendors/nvidia.icd
|
|
|
|
ENV PATH /opt/LightGBM:${PATH}
|
|
ENV LANG C.UTF-8
|
|
ENV LC_ALL C.UTF-8
|
|
|
|
ENTRYPOINT ["lightgbm"]
|