mirror of
https://github.com/intel/intel-device-plugins-for-kubernetes.git
synced 2025-06-03 03:59:37 +00:00
80 lines
2.7 KiB
Docker
80 lines
2.7 KiB
Docker
### 1. Temporary image to prepare AOCL and OPAE components
|
|
FROM centos:centos7.4.1708 as temporary
|
|
|
|
# install aocl and opae deps
|
|
RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
|
|
RUN yum -y install which perl uuid libuuid-devel json-c
|
|
|
|
ADD a10_gx_pac_ias_1_1_pv_rte_installer.tar.gz $WORKDIR
|
|
|
|
# install opae
|
|
RUN tar -zxf a10_gx_pac_ias_1_1_pv_rte_installer/components/a10_gx_pac_ias_1_1_pv.tar.gz sw
|
|
RUN rpm -ihv sw/opae-libs*.rpm sw/opae-tools*.rpm sw/opae-devel*.rpm
|
|
|
|
# install aocl rte
|
|
RUN a10_gx_pac_ias_1_1_pv_rte_installer/components/aocl-pro-rte-17.1.1.273-linux.run --mode unattended --installdir / --accept_eula 1
|
|
|
|
# unpack opencl_bsp
|
|
RUN tar -zxf a10_gx_pac_ias_1_1_pv_rte_installer/components/a10_gx_pac_ias_1_1_pv.tar.gz opencl/opencl_bsp.tar.gz
|
|
RUN tar -zxf opencl/opencl_bsp.tar.gz && rm -rf opencl_bsp/hardware
|
|
|
|
### 2. Final initcontainer image
|
|
FROM alpine as final
|
|
|
|
ARG SRC_DIR=/opt/intel/fpga-sw.src
|
|
ARG DST_DIR=/opt/intel/fpga-sw
|
|
|
|
# OpenCL
|
|
COPY --from=temporary aclrte-linux64 $SRC_DIR/opencl/aclrte-linux64
|
|
COPY --from=temporary opencl_bsp $SRC_DIR/opencl/opencl_bsp
|
|
|
|
RUN echo -e "#!/bin/sh\n\
|
|
export INTEL_FPGA_ROOT=$DST_DIR\n\
|
|
export FPGA_OPENCL_ROOT=\$INTEL_FPGA_ROOT/opencl\n\
|
|
export AOCL_BOARD_PACKAGE_ROOT=\$FPGA_OPENCL_ROOT/opencl_bsp\n\
|
|
export INTELFPGAOCLSDKROOT=\$FPGA_OPENCL_ROOT/aclrte-linux64\n\
|
|
export LD_LIBRARY_PATH=\$AOCL_BOARD_PACKAGE_ROOT/linux64/lib:\$INTEL_FPGA_ROOT/opae/lib\n\
|
|
\$INTELFPGAOCLSDKROOT/bin/aocl \"\$@\"" >> $SRC_DIR/opencl/aocl-wrapper
|
|
RUN chmod +x $SRC_DIR/opencl/aocl-wrapper
|
|
|
|
# OPAE
|
|
COPY --from=temporary /usr/bin/fpgaconf $SRC_DIR/opae/bin/
|
|
COPY --from=temporary /usr/bin/packager $SRC_DIR/opae/bin/
|
|
COPY --from=temporary /usr/lib64/libopae-c.so* $SRC_DIR/opae/lib/
|
|
COPY --from=temporary /usr/lib64/libjson-c.so* $SRC_DIR/opae/lib/
|
|
COPY --from=temporary /usr/lib64/libuuid.so* $SRC_DIR/opae/lib/
|
|
|
|
RUN echo -e "#!/bin/sh\n\
|
|
export LD_LIBRARY_PATH=$DST_DIR/opae/lib\n\
|
|
$DST_DIR/opae/bin/fpgaconf \"\$@\"">> $SRC_DIR/opae/fpgaconf-wrapper
|
|
RUN chmod +x $SRC_DIR/opae/fpgaconf-wrapper
|
|
|
|
# CRI hook
|
|
|
|
ARG CRI_HOOK=intel-fpga-crihook
|
|
ARG CRI_HOOK_SRC=$SRC_DIR/$CRI_HOOK
|
|
ARG CRI_HOOK_DST=$DST_DIR/$CRI_HOOK
|
|
ARG HOOK_CONF=$CRI_HOOK.json
|
|
ARG HOOK_CONF_SRC=$SRC_DIR/$HOOK_CONF
|
|
ARG HOOK_CONF_DST=$DST_DIR/$HOOK_CONF
|
|
|
|
COPY ./$CRI_HOOK $CRI_HOOK_SRC
|
|
|
|
RUN echo -e "{\n\
|
|
\"hook\" : \"$CRI_HOOK_DST\",\n\
|
|
\"stage\" : [ \"prestart\" ],\n\
|
|
\"annotation\": [ \"fpga.intel.com/region\" ]\n\
|
|
}\n">>$HOOK_CONF_SRC
|
|
|
|
# Setup
|
|
|
|
RUN apk update
|
|
RUN apk add rsync
|
|
|
|
RUN echo -e "#!/bin/sh\n\
|
|
rsync -a --delete $SRC_DIR/ $DST_DIR\n\
|
|
ln -sf $HOOK_CONF_DST /etc/containers/oci/hooks.d/$HOOK_CONF\n\
|
|
rm $DST_DIR/deploy.sh\n\
|
|
">> $SRC_DIR/deploy.sh
|
|
RUN chmod +x $SRC_DIR/deploy.sh
|