# Copyright (C) 2019 Intel Corporation.  All rights reserved.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

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 --no-install-recommends

WORKDIR /home/wamr

COPY . .

WORKDIR /home/wamr/product-mini/platforms/linux/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 \
    -DWAMR_BUILD_WASI_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 && \
    rm -rf /var/lib/apt/lists/*

RUN mkdir -p /etc/OpenCL/vendors && \
    echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icd

ENV NVIDIA_VISIBLE_DEVICES=all
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility

COPY --from=base /home/wamr/product-mini/platforms/linux/build/iwasm /iwasm

ENTRYPOINT [ "/iwasm" ]
