From 8f82b1e8a21132aa69ba939d72e97f5e6a6e27f4 Mon Sep 17 00:00:00 2001 From: TianlongLiang <111852609+TianlongLiang@users.noreply.github.com> Date: Thu, 15 Jun 2023 16:52:48 +0800 Subject: [PATCH] Fix dockerfile linter warnings (#2291) --- .devcontainer/Dockerfile | 11 +-- .../libraries/wasi-nn/test/Dockerfile.compile | 7 +- .../libraries/wasi-nn/test/Dockerfile.cpu | 12 ++- .../wasi-nn/test/Dockerfile.nvidia-gpu | 27 ++++-- .../wasi-nn/test/Dockerfile.vx-delegate | 88 +++++++++++-------- 5 files changed, 90 insertions(+), 55 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 7ccfa2467..2a8fcbcaf 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -81,7 +81,7 @@ RUN mkdir /opt/bazelisk \ # # install clang+llvm ARG LLVM_VER=14 -RUN apt-get purge -y clang-10 llvm-10 && apt autoremove -y +RUN apt-get purge -y clang-10 llvm-10 && apt-get autoremove -y WORKDIR /etc/apt/apt.conf.d RUN touch 99verfiy-peer.conf \ && echo "Acquire { https::Verify-Peer false }" > 99verfiy-peer.conf @@ -110,14 +110,15 @@ RUN python3 -m pip install --no-cache-dir --upgrade pip \ # # Install github-cli. It doens't work as a feature of devcontainer.json -RUN cd /tmp \ - && wget https://github.com/cli/cli/releases/download/v2.20.2/gh_2.20.2_linux_amd64.deb \ +WORKDIR /tmp +RUN wget -q https://github.com/cli/cli/releases/download/v2.20.2/gh_2.20.2_linux_amd64.deb \ && dpkg -i gh_2.20.2_linux_amd64.deb # # Install NodeJS -RUN curl -fsSL https://deb.nodesource.com/setup_19.x | bash - -RUN apt-get install -y nodejs +RUN wget -qO- https://deb.nodesource.com/setup_19.x | bash - +# hadolint ignore=DL3008 +RUN apt-get install -y nodejs --no-install-recommends # set path ENV PATH="/opt/bazelisk:/usr/lib/llvm-${LLVM_VER}/bin:${PATH}" diff --git a/core/iwasm/libraries/wasi-nn/test/Dockerfile.compile b/core/iwasm/libraries/wasi-nn/test/Dockerfile.compile index 51a59707b..b20d0111a 100644 --- a/core/iwasm/libraries/wasi-nn/test/Dockerfile.compile +++ b/core/iwasm/libraries/wasi-nn/test/Dockerfile.compile @@ -5,8 +5,11 @@ FROM ubuntu:20.04 ENV DEBIAN_FRONTEND=noninteractive +# hadolint ignore=DL3008 RUN apt-get update && apt-get install -y \ - cmake build-essential git wget python3.10 python3-pip + cmake build-essential git wget python3.10 python3-pip --no-install-recommends \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* ARG WASI_SDK_VER=19 RUN wget -c --progress=dot:giga https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VER}/wasi-sdk-${WASI_SDK_VER}.0-linux.tar.gz -P /opt \ @@ -18,6 +21,6 @@ WORKDIR /wasi-nn/test COPY core/iwasm/libraries/wasi-nn/test/requirements.txt . -RUN pip3 install -r requirements.txt && rm requirements.txt +RUN pip3 install --no-cache-dir -r requirements.txt && rm requirements.txt ENTRYPOINT [ "bash", "./build.sh" ] diff --git a/core/iwasm/libraries/wasi-nn/test/Dockerfile.cpu b/core/iwasm/libraries/wasi-nn/test/Dockerfile.cpu index 532a53365..131b142c8 100644 --- a/core/iwasm/libraries/wasi-nn/test/Dockerfile.cpu +++ b/core/iwasm/libraries/wasi-nn/test/Dockerfile.cpu @@ -5,8 +5,9 @@ FROM ubuntu:20.04 AS base ENV DEBIAN_FRONTEND=noninteractive +# hadolint ignore=DL3008 RUN apt-get update && apt-get install -y \ - cmake build-essential git + cmake build-essential git --no-install-recommends WORKDIR /home/wamr @@ -14,11 +15,18 @@ COPY . . WORKDIR /home/wamr/core/iwasm/libraries/wasi-nn/test/build +# hadolint ignore=DL3008 +RUN apt-get install -y wget ca-certificates --no-install-recommends \ + && mkdir /usr/local/share/ca-certificates/cacert.org \ + && wget -qP /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt \ + && update-ca-certificates \ + && git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt + RUN cmake \ -DWAMR_BUILD_WASI_NN=1 \ .. -RUN make -j $(grep -c ^processor /proc/cpuinfo) +RUN make -j "$(grep -c ^processor /proc/cpuinfo)" FROM ubuntu:22.04 diff --git a/core/iwasm/libraries/wasi-nn/test/Dockerfile.nvidia-gpu b/core/iwasm/libraries/wasi-nn/test/Dockerfile.nvidia-gpu index 44963bd63..86cf9dceb 100644 --- a/core/iwasm/libraries/wasi-nn/test/Dockerfile.nvidia-gpu +++ b/core/iwasm/libraries/wasi-nn/test/Dockerfile.nvidia-gpu @@ -5,8 +5,9 @@ FROM ubuntu:20.04 AS base ENV DEBIAN_FRONTEND=noninteractive +# hadolint ignore=DL3008 RUN apt-get update && apt-get install -y \ - cmake build-essential git + cmake build-essential git --no-install-recommends WORKDIR /home/wamr @@ -14,19 +15,27 @@ COPY . . WORKDIR /home/wamr/core/iwasm/libraries/wasi-nn/test/build -RUN cmake \ - -DWAMR_BUILD_WASI_NN=1 \ - -DWASI_NN_ENABLE_GPU=1 \ - .. +# hadolint ignore=DL3008 +RUN apt-get install -y wget ca-certificates --no-install-recommends \ + && mkdir /usr/local/share/ca-certificates/cacert.org \ + && wget -qP /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt \ + && update-ca-certificates \ + && git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt -RUN make -j $(grep -c ^processor /proc/cpuinfo) +RUN cmake \ + -DWAMR_BUILD_WASI_NN=1 \ + -DWASI_NN_ENABLE_GPU=1 \ + .. + +RUN make -j "$(grep -c ^processor /proc/cpuinfo)" FROM nvidia/cuda:11.3.0-runtime-ubuntu20.04 +# hadolint ignore=DL3008 RUN apt-get update && apt-get install -y --no-install-recommends \ - ocl-icd-libopencl1 \ - ocl-icd-opencl-dev \ - clinfo && \ + ocl-icd-libopencl1 \ + ocl-icd-opencl-dev \ + clinfo && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /etc/OpenCL/vendors && \ diff --git a/core/iwasm/libraries/wasi-nn/test/Dockerfile.vx-delegate b/core/iwasm/libraries/wasi-nn/test/Dockerfile.vx-delegate index 89cc1a9de..f078045b9 100644 --- a/core/iwasm/libraries/wasi-nn/test/Dockerfile.vx-delegate +++ b/core/iwasm/libraries/wasi-nn/test/Dockerfile.vx-delegate @@ -6,22 +6,33 @@ FROM ubuntu:20.04 AS base ENV DEBIAN_FRONTEND=noninteractive +# hadolint ignore=DL3008 RUN apt-get update && apt-get install -y \ - cmake build-essential git curl libssl-dev python3 + cmake build-essential git curl libssl-dev python3 --no-install-recommends \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* +# hadolint ignore=DL3008 +RUN apt-get update && apt-get install -y wget ca-certificates --no-install-recommends \ + && apt-get clean -y \ + && rm -rf /var/lib/apt/lists/* \ + && mkdir /usr/local/share/ca-certificates/cacert.org \ + && wget -qP /usr/local/share/ca-certificates/cacert.org http://www.cacert.org/certs/root.crt http://www.cacert.org/certs/class3.crt \ + && update-ca-certificates \ + && git config --global http.sslCAinfo /etc/ssl/certs/ca-certificates.crt # Build TensorFlow Lite VX delegate default built for x86-64 simulator WORKDIR /tmp -RUN git clone https://github.com/VeriSilicon/TIM-VX.git tim-vx -RUN git clone https://github.com/VeriSilicon/tflite-vx-delegate.git -RUN git clone https://github.com/tensorflow/tensorflow.git +RUN git clone https://github.com/VeriSilicon/TIM-VX.git tim-vx \ + && git clone https://github.com/VeriSilicon/tflite-vx-delegate.git \ + && git clone https://github.com/tensorflow/tensorflow.git # Build TIM-VX WORKDIR /tmp/tim-vx/host_build -RUN cmake -DCMAKE_INSTALL_PREFIX=/usr/local ../ -RUN make -j$(grep -c ^processor /proc/cpuinfo) -RUN make install +RUN cmake -DCMAKE_INSTALL_PREFIX=/usr/local ../ \ + && make -j "$(grep -c ^processor /proc/cpuinfo)" \ + && make install WORKDIR /tmp/tim-vx #RUN mkdir -p prebuilt-sdk/x86_64_linux/lib/include @@ -31,22 +42,23 @@ WORKDIR /tmp/tim-vx # Build TensorFlow Lite WORKDIR /tmp/tensorflow/build RUN cmake \ - -DBUILD_SHARED_LIBS=ON=on \ - -DTFLITE_ENABLE_RUY=on \ - -DTFLITE_ENABLE_NNAPI=off \ - -DTFLITE_ENABLE_XNNPACK=on \ - -DTFLITE_ENABLE_EXTERNAL_DELEGATE=on \ - ../tensorflow/lite/ -RUN make -j$(grep -c ^processor /proc/cpuinfo) -RUN make install -RUN cp --no-preserve=ownership -d lib*.so* /usr/local/lib -RUN cp -r --no-preserve=ownership -d flatbuffers/include/flatbuffers /usr/local/include + -DBUILD_SHARED_LIBS=ON=on \ + -DTFLITE_ENABLE_RUY=on \ + -DTFLITE_ENABLE_NNAPI=off \ + -DTFLITE_ENABLE_XNNPACK=on \ + -DTFLITE_ENABLE_EXTERNAL_DELEGATE=on \ + ../tensorflow/lite/ +RUN make -j "$(grep -c ^processor /proc/cpuinfo)" \ + && make install \ + && cp --no-preserve=ownership -d lib*.so* /usr/local/lib \ + && cp -r --no-preserve=ownership -d flatbuffers/include/flatbuffers /usr/local/include # install header files -RUN install -d /usr/local/include/tensorflow/lite && \ - cd /tmp/tensorflow/tensorflow/lite && \ - cp --parents \ - $(find . -name "*.h*") \ - /usr/local/include/tensorflow/lite +RUN install -d /usr/local/include/tensorflow/lite +WORKDIR /tmp/tensorflow/tensorflow/lite +# hadolint ignore=SC2046 +RUN cp --parents \ + $(find . -name "*.h*") \ + /usr/local/include/tensorflow/lite # install version.h from core RUN install -d /usr/local/include/tensorflow/core/public && \ cp /tmp/tensorflow/tensorflow/core/public/version.h /usr/local/include/tensorflow/core/public @@ -55,21 +67,22 @@ RUN install -d /usr/local/include/tensorflow/core/public && \ # Build Vx Delegate default built for x86-64 simulator WORKDIR /tmp/tflite-vx-delegate/build RUN cmake \ - -DBUILD_SHARED_LIBS=ON \ - -DFETCHCONTENT_SOURCE_DIR_TENSORFLOW=/tmp/tensorflow \ - -DTFLITE_LIB_LOC=/usr/local/lib/libtensorflow-lite.so \ - -DTIM_VX_INSTALL=/usr/local \ - -DCMAKE_INSTALL_PREFIX=/usr/ \ - ../ -RUN make vx_delegate -j$(grep -c ^processor /proc/cpuinfo) -RUN make install -RUN cp --no-preserve=ownership -d lib*.so* /usr/lib + -DBUILD_SHARED_LIBS=ON \ + -DFETCHCONTENT_SOURCE_DIR_TENSORFLOW=/tmp/tensorflow \ + -DTFLITE_LIB_LOC=/usr/local/lib/libtensorflow-lite.so \ + -DTIM_VX_INSTALL=/usr/local \ + -DCMAKE_INSTALL_PREFIX=/usr/ \ + ../ +RUN make vx_delegate -j "$(grep -c ^processor /proc/cpuinfo)" \ + && make install \ + && cp --no-preserve=ownership -d lib*.so* /usr/lib # install header files -RUN install -d /usr/local/include/tensorflow-lite-vx-delegate && \ - cd /tmp/tflite-vx-delegate/ && \ - cp --parents \ - $(find . -name "*.h*") \ - /usr/local/include/tensorflow-lite-vx-delegate +RUN install -d /usr/local/include/tensorflow-lite-vx-delegate +WORKDIR /tmp/tflite-vx-delegate/ +# hadolint ignore=SC2046 +RUN cp --parents \ + $(find . -name "*.h*") \ + /usr/local/include/tensorflow-lite-vx-delegate ENV VIVANTE_SDK_DIR=/tmp/tim-vx/prebuilt-sdk/x86_64_linux/ ENV VSIMULATOR_CONFIG=czl @@ -84,6 +97,7 @@ COPY . . WORKDIR /home/wamr/core/iwasm/libraries/wasi-nn/test/build +# hadolint ignore=SC2086 RUN cmake \ -DCMAKE_LIBRARY_PATH=${CMAKE_LIBRARY_PATH}:/usr/local/lib/ \ -DCMAKE_INCLUDE_PATH=${CMAKE_INCLUDE_PATH}:/usr/local/include/ \ @@ -92,7 +106,7 @@ RUN cmake \ -DWASI_NN_EXT_DELEGATE_PATH="/usr/lib/libvx_delegate.so" \ .. -RUN make -j $(grep -c ^processor /proc/cpuinfo) +RUN make -j "$(grep -c ^processor /proc/cpuinfo)" RUN cp /home/wamr/core/iwasm/libraries/wasi-nn/test/build/iwasm /run/iwasm