runtime.x86_64.dockerfile.sample 2.8 KB
Newer Older
1
ARG DEV_IMAGE_IN=apolloauto/apollo:dev-x86_64-18.04-20210517_1712
2 3 4 5 6 7

ARG BASE_IMAGE=nvidia/cuda:11.1-runtime-ubuntu18.04

FROM ${DEV_IMAGE_IN} as devel
FROM ${BASE_IMAGE}

8 9 10 11
ARG GEOLOC=us
ARG CUDA_LITE=11.1
ARG CUDNN_VERSION=8.0.4.30
ARG TENSORRT_VERSION=7.2.1
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56

ENV APOLLO_DIST=stable
ENV DEBIAN_FRONTEND=noninteractive
ENV PATH /opt/apollo/sysroot/bin:$PATH

COPY --from=devel /opt/apollo/rcfiles /opt/apollo/rcfiles/
COPY --from=devel /opt/apollo/installers /opt/apollo/installers

RUN if [ "${GEOLOC}" = "cn" ]; then \
        cp -f /etc/apt/sources.list /etc/apt/sources.list.orig; \
        cp -f /opt/apollo/rcfiles/sources.list.cn.x86_64 /etc/apt/sources.list; \
    fi

RUN M="${CUDNN_VERSION%%.*}" \
    && PATCH="-1+cuda${CUDA_LITE}" \
    && apt-get -y update \
    && apt-get install -y --no-install-recommends \
        libcudnn${M}="${CUDNN_VERSION}${PATCH}" \
    && apt-mark hold libcudnn${M} \
    && rm -rf /var/lib/apt/lists/* \
    && echo "Delete static cuDNN libraries..." \
    && find /usr/lib/$(uname -m)-linux-gnu -name "libcudnn_*.a" -delete -print

ENV CUDNN_VERSION ${CUDNN_VERSION}

RUN PATCH="-1+cuda${CUDA_LITE}" && apt-get -y update \
    && apt-get install -y --no-install-recommends \
        libnvinfer7="${TENSORRT_VERSION}${PATCH}" \
        libnvonnxparsers7="${TENSORRT_VERSION}${PATCH}" \
        libnvparsers7="${TENSORRT_VERSION}${PATCH}" \
        libnvinfer-plugin7="${TENSORRT_VERSION}${PATCH}" \
    && apt-get -y clean \
    && rm -rf /var/lib/apt/lists/* \
    && rm -f /etc/apt/sources.list.d/nvidia-ml.list \
    && rm -f /etc/apt/sources.list.d/cuda.list

ENV TENSORRT_VERSION ${TENSORRT_VERSION}

RUN ln -s -f /bin/true /usr/bin/chfn \
    && echo "stage=runtime" > /etc/apollo.conf \
    && bash /opt/apollo/installers/install_minimal_environment.sh ${GEOLOC}

RUN bash /opt/apollo/installers/install_mkl.sh
#RUN bash /opt/apollo/installers/install_node.sh

57
# TODO(storypku): NodeJS
58 59
COPY --from=devel /usr/local/fast-rtps  /usr/local/fast-rtps
COPY --from=devel /usr/local/libtorch_gpu /usr/local/libtorch_gpu
60
COPY --from=devel /usr/local/qt5 /usr/local/qt5
61
COPY --from=devel /etc/ld.so.conf.d/qt.conf /etc/ld.so.conf.d/qt.conf
62 63 64 65 66 67 68
COPY --from=devel /opt/apollo/pkgs /opt/apollo/pkgs
COPY --from=devel /opt/apollo/sysroot/lib /opt/apollo/sysroot/lib
#COPY --from=devel /opt/apollo/sysroot/bin /opt/apollo/sysroot/bin
COPY --from=devel /etc/profile.d/apollo.sh /etc/profile.d/apollo.sh
COPY --from=devel /etc/ld.so.conf.d/apollo.conf /etc/ld.so.conf.d/apollo.conf

COPY syspkgs.txt /opt/apollo/syspkgs.txt
69 70
RUN apt-get -y update \
    && apt-get -y install --no-install-recommends \
71
        silversearcher-ag \
72 73 74
        $(cat /opt/apollo/syspkgs.txt) \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*
75 76 77 78

# Restore
RUN bash /opt/apollo/installers/install_geo_adjustment.sh us
RUN ldconfig