导语:使用hadolint检测dockerfile规范
命令的功能
hadolint - Dockerfile Linter written in Haskell
Usage: hadolint [-v|--version] [-c|--config FILENAME] [DOCKERFILE...]
[--file-path-in-report FILEPATHINREPORT] [--no-fail]
[--no-color] [-V|--verbose] [-f|--format ARG] [--error RULECODE]
[--warning RULECODE] [--info RULECODE] [--style RULECODE]
[--ignore RULECODE]
[--trusted-registry REGISTRY (e.g. docker.io)]
[--require-label LABELSCHEMA (e.g. maintainer:text)]
[--strict-labels] [--disable-ignore-pragma]
[-t|--failure-threshold THRESHOLD]
Lint Dockerfile for errors and best practices
Available options:
-h,--help Show this help text
-v,--version Show version
-c,--config FILENAME Path to the configuration file
--file-path-in-report FILEPATHINREPORT
The file path referenced in the generated report.
This only applies for the 'checkstyle' format and is
useful when running Hadolint with Docker to set the
correct file path.
--no-fail Don't exit with a failure status code when any rule
is violated
--no-color Don't colorize output
-V,--verbose Enables verbose logging of hadolint's output to
stderr
-f,--format ARG The output format for the results [tty | json |
checkstyle | codeclimate | gitlab_codeclimate | gnu |
codacy | sonarqube | sarif] (default: tty)
--error RULECODE Make the rule `RULECODE` have the level `error`
--warning RULECODE Make the rule `RULECODE` have the level `warning`
--info RULECODE Make the rule `RULECODE` have the level `info`
--style RULECODE Make the rule `RULECODE` have the level `style`
--ignore RULECODE A rule to ignore. If present, the ignore list in the
config file is ignored
--trusted-registry REGISTRY (e.g. docker.io)
A docker registry to allow to appear in FROM
instructions
--require-label LABELSCHEMA (e.g. maintainer:text)
The option --require-label=label:format makes
Hadolint check that the label `label` conforms to
format requirement `format`
--strict-labels Do not permit labels other than specified in
`label-schema`
--disable-ignore-pragma Disable inline ignore pragmas `# hadolint
ignore=DLxxxx`
-t,--failure-threshold THRESHOLD
Exit with failure code only when rules with a
severity equal to or above THRESHOLD are violated.
Accepted values: [error | warning | info | style |
ignore | none] (default: info)
执行
docker run --rm -i hadolint/hadolint hadolint "$@" - < Dockerfile
检测的dockerfile如下
FROM nvidia/opengl:1.0-glvnd-devel-ubuntu16.04
# 作者
MAINTAINER xujiamin
# 持久化目录需要提前创建好 避免报错
#ADD aiserver /root/aiserver
#ADD path.conf /root/lung/path.conf
ADD jdk-8u151-linux-x64.tgz /opt/
# 先安装python3.6.8
RUN echo "deb [trusted=yes] http://172.16.40.245:86 soft/" > /etc/apt/sources.list \
&& rm -rf /etc/apt/sources.list.d/* \
&& apt-get update \
&& apt-get -y install python3.6 --no-install-recommends \
# autoconf automake
&& rm -rf /usr/bin/python3 \
&& ln -s /usr/bin/python3.6 /usr/bin/python3 \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*
ADD get-pip.py /srv/get-pip.py
#ADD sources.list /etc/apt/sources.list
# 先安装python3.6.8
RUN apt update \
&& python3 /srv/get-pip.py -i https://pypi.tuna.tsinghua.edu.cn/simple \
#&& pip3 install pytest-runner -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install gpustat -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN rm -rf /etc/localtime \
&& ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /root/.cache/pip/
ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8
ENV JAVA_HOME /opt/jdk1.8.0_151
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH
COPY libicu55_55.1-7_amd64.deb /srv/libicu55_55.1-7_amd64.deb
COPY jsoncpp_dcmtk_opencv_node.tgz /srv/jsoncpp_dcmtk_opencv_node.tgz
COPY CTA_Client_Deploy /srv/CTA_Client_Deploy
RUN cd /srv/CTA_Client_Deploy && bash /srv/CTA_Client_Deploy/copyfile.sh \
&& cd /srv/CTA_Client_Deploy && bash /srv/CTA_Client_Deploy/copy_print.sh \
&& ln -s /root/aiserver/opencv_lib/libopencv_java.so /usr/lib/libopencv_java.so \
&& ln -s /root/aiserver/lib/clib* /opt/jdk1.8.0_151/jre/lib/ext/ \
&& ln -s /root/aiserver/so_lib/libSvrCallLungRecon.so /usr/lib \
&& ln -s /root/aiserver/so_lib/libnewgsps.so /usr/lib \
&& apt-get update \
&& apt-get install rsync pigz tzdata libicu-dev libxml2 libtiff-dev libpng-dev libpython3.6-dev libopenblas-dev libjasper-dev libgtk2.0 libjsoncpp-dev -y --no-install-recommends \
# 似乎用不到
# && apt-get install libdc1394-22-dev -y --no-install-recommends \
&& tar --use-compress-program=pigz -xpf /srv/jsoncpp_dcmtk_opencv_node.tgz -C /opt/ \
&& rsync -aq /opt/dcmtk/ /usr/local/ \
&& rsync -aq /opt/opencv/ /usr/local/ \
&& echo "export DCMDICTPATH=/usr/local/share/dcmtk/dicom.dic" >>/root/.bashrc \
&& echo "export DCMDICTPATH=/usr/local/share/dcmtk/dicom.dic" >>/etc/profile \
&& rm -f /usr/lib/x86_64-linux-gnu/libstdc++.so.6 \
&& dpkg -i /srv/libicu55_55.1-7_amd64.deb \
&& apt-get install -f -y \
&& rm -rf /srv/ \
&& apt clean \
&& rm -rf /var/lib/apt/lists/* \
&& ldconfig
ENV DCMDICTPATH /usr/local/share/dcmtk/dicom.dic
###
COPY so_lib /srv/so_lib
#COPY font /usr/share/fonts/consolas
#RUN cp -r /root/platform/print/* /usr/lib/ \
#&& cp -rf /srv/so_lib/* /usr/lib/ \
#&& ldconfig \
RUN apt update \
&& apt install curl -y \
&& apt install libtiff-dev xfonts-utils fontconfig libpython3.6-dev -y \
&& apt-get -y update && DEBIAN_FRONTEND="noninteractive" apt -y install tzdata
ADD sources.list /etc/apt/sources.list
RUN apt update \
&& apt install rsync -y \
#
&& apt install libicu-dev -y \
&& apt install libopenblas-dev -y \
&& apt install libgtk2.0-0:amd64 --no-install-recommends -y \
#
&& apt install libjasper1 libjasper-dev -y \
&& apt-get install pigz --no-install-recommends -y\
&& apt clean \
&& rm -rf /srv/* \
&& rm -rf /var/lib/apt/lists/*
ENV CUDA_ROOT /usr/local/cuda
ENV PATH $PATH:$CUDA_ROOT/bin
COPY cuda_11.2.1_460.32.03_linux.run /srv/cuda_11.2.1_460.32.03_linux.run
COPY cudnn-11.2-linux-x64-v8.1.1.33.tgz /srv/cudnn-11.2-linux-x64-v8.1.1.33.tgz
RUN echo "export CUDA_ROOT=/usr/local/cuda" >> /root/.bashrc \
&& echo "export PATH=\$PATH:\$CUDA_ROOT/bin" >> /root/.bashrc \
&& /srv/cuda_11.2.1_460.32.03_linux.run --silent --toolkit \
#&& apt-get install pigz --no-install-recommends -y\
&& apt clean \
&& rm -rf /var/lib/apt/lists/*
RUN tar --use-compress-program=pigz -xpPf /srv/cudnn-11.2-linux-x64-v8.1.1.33.tgz -C /usr/local/ \
&& rm -rf /srv/* \
&& rm -rf /var/lib/apt/lists/* \
&& ldconfig
COPY libopencv_java.so /usr/lib/libopencv_java.so
COPY libnewgsps.so /usr/lib/libnewgsps.so
COPY libSvrCallLungRecon.so /usr/lib/libSvrCallLungRecon.so
RUN pip3 install numpy==1.19.5 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install vtk==9.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install numpy==1.19.5 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& rm -rf /root/.cache/pip/
ENV DCMDICTPATH /usr/local/share/dcmtk/dicom.dic
ENV LANG C.UTF-8
ENV JAVA_HOME /opt/jdk1.8.0_151
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH
#ADD sources.list /etc/apt/sources.list
RUN echo "deb [trusted=yes] http://172.16.40.245:80 soft/" > /etc/apt/sources.list \
&& apt-get update \
&& apt-get -y install openfoam7 --no-install-recommends
#&& apt-get -y install checkinstall cmake cmake-curses-gui swig curl libgdcm2.6 libgdcm-tools libgl1-mesa-dev libglapi-mesa libosmesa6 libpython3.6-dev libvtk6-dev mesa-common-dev openfoam7 libmysqlclient-dev --no-install-recommends
RUN echo "deb [trusted=yes] http://172.16.40.245:86 soft/" > /etc/apt/sources.list \
&& apt update \
&& apt-get -y install python3.6 python3.6-dev python-dev python-gdcm python-vtk6 zip --no-install-recommends \
# autoconf automake
&& rm -rf /usr/bin/python3 \
&& ln -s /usr/bin/python3.6 /usr/bin/python3 \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*
# lung-egl-01
ADD get-pip.py /srv/get-pip.py
ADD sources.list.ali /etc/apt/sources.list
# 先安装python3.6.8
RUN apt update \
# error: command 'x86_64-linux-gnu-gcc'
&& apt-get install libcups2-dev -y \
&& apt-get install checkinstall cmake cmake-curses-gui swig curl libgdcm2.6 libgdcm-tools libgl1-mesa-dev libglapi-mesa libosmesa6 libpython3.6-dev libvtk6-dev mesa-common-dev libmysqlclient-dev vim -y \
# fatal error: gnutls/gnutls.h: No such file or directory
&& apt-get install libghc-gnutls-dev -y
RUN apt-get install libcups2-dev -y
RUN echo "nameserver 114.114.114.114" >> /etc/resolv.conf
RUN python3 /srv/get-pip.py -i https://pypi.tuna.tsinghua.edu.cn/simple \
# from .cv2 import _registerMatType
&& pip3 install opencv-python-headless==4.1.2.30 -i https://pypi.tuna.tsinghua.edu.cn/simple \
#&& pip3 install torchvision==0.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install anytree==2.7.3 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install triangle -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install itk==5.2.1.post1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install itk-elastix==0.13.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pytest-runner==5.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install coverage==5.5 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install nose==1.3.7 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install trimesh[easy]==3.9.35 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install defer==1.0.4 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install dataclasses==0.8 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install Cython==0.29.21 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install numpy==1.19.5 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install typing-extensions==3.10.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install fvcore==0.1.3.post20210204 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install iopath==0.1.8 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install portalocker==2.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install tabulate==0.8.9 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install termcolor==1.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install matplotlib==3.3.4 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install scikit_spatial==5.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install batchgenerators==0.21 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install medpy==0.4.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install yapf==0.30.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install numba==0.51.2 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pyvista==0.24.2 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install tetgen==0.4.4 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install edt==2.0.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pymeshfix==0.13.4 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pickle5==0.0.10 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install tetgen==0.4.4 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install addict==2.2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install atomicwrites==1.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install attrs==19.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install chardet==2.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install Click==7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install cloudpickle==1.2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install colorama==0.4.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install cycler==0.10.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install dask==2.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install DBUtils==1.3 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install decorator==4.4.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install dijkstra3d==1.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install dipy==1.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install filelock==3.0.12 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install flatbuffers==1.11 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install funcsigs==1.0.2 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install future==0.18.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install h5py==2.10.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install imagecorruptions==0.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install imageio==2.6.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install kiwisolver==1.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install more-itertools==7.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install mysqlclient==1.4.4 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install networkx==2.4 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install nibabel==2.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install opencv-python==4.1.1.26 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install packaging==19.2 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pandas==0.25.2 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pexpect==4.0.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install Pillow==6.2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pluggy==0.13.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install psutil==3.2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install ptyprocess==0.5 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pytest==5.2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install py==1.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pycrypto==2.6.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pycups==1.9.73 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pycurl==7.43.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pydicom==1.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pynvml==8.0.3 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pyparsing==2.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install python-dateutil==2.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pytz==2019.3 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install PyWavelets==1.1.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install PyYAML==3.12 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install ray==0.6.6 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install redis==3.3.11 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install reportlab==3.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install requests==2.9.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install scikit-image==0.16.2 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install scikit-learn==0.20.2 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install scipy==1.3.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install setproctitle==1.1.10 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install SimpleITK==1.2.3 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install six==1.10.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install terminaltables==3.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install toolz==0.10.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install tqdm==4.36.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install typing==3.7.4.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install urllib3==1.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install wcwidth==0.1.7 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install yacs==0.1.6 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install zipp==0.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install joblib==0.13.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install json_tricks -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install albumentations -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install meshio==4.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install scooby==0.5.6 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install shapely==1.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pyefd==1.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install dicom2nifti==2.1.8 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pycocotools==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install pydensecrf==1.0rc2 -i https://pypi.tuna.tsinghua.edu.cn/simple \
#
#&& pip3 install torch===1.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install easydict==1.9 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip3 install mmcv-full==1.3.11 -f https://download.openmmlab.com/mmcv/dist/cu110/torch1.7.0/index.html \
&& python3 -m pip install timm==0.4.12 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& python3 -m pip install fastremap==1.12.2 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& python3 -m pip install json5==0.9.8 -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& python3 -m pip install trimesh[easy]==3.9.35 -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip3 install antspyx==0.2.2 -f http://172.16.40.245:82/antspyx-0.2.2-cp36-cp36m-linux_x86_64.whl \
&& pip3 install torch==1.7.0+cu110 -f http://172.16.40.245:82/torch-1.7.0+cu110-cp36-cp36m-linux_x86_64.whl \
&& pip3 install torchvision==0.8.0 -f http://172.16.40.245:82/torchvision-0.8.0-cp36-cp36m-linux_x86_64.whl
#########
COPY cuda_11.2.1_460.32.03_linux.run /srv/cuda_11.2.1_460.32.03_linux.run
COPY cudnn-11.2-linux-x64-v8.1.1.33.tgz /srv/cudnn-11.2-linux-x64-v8.1.1.33.tgz
ADD pycuda-2021.1.tar.gz /srv/
ADD TensorRT-8.0.1.6.tgz /opt/
#ADD TensorRT-8.0.1.6.Linux.x86_64-gnu.cuda-11.3.cudnn8.2.tar.gz /opt/
COPY build_1-1_amd64.deb /srv/build_1-1_amd64.deb
COPY apex /srv/apex
RUN rm -rf /etc/localtime \
&& ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "export LC_ALL='C.UTF-8'" >> /root/.bashrc \
&& echo "export CUDA_ROOT=/usr/local/cuda" >> /root/.bashrc \
&& echo "export PATH=\$PATH:\$CUDA_ROOT/bin" >> /root/.bashrc \
#&& /srv/cuda_11.2.1_460.32.03_linux.run --silent --toolkit \
&& apt-get install pigz --no-install-recommends \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*
RUN /srv/cuda_11.2.1_460.32.03_linux.run --silent --toolkit \
&& tar --use-compress-program=pigz -xpPf /srv/cudnn-11.2-linux-x64-v8.1.1.33.tgz -C /usr/local/
ENV LC_ALL C.UTF-8
ENV CUDA_ROOT /usr/local/cuda
ENV PATH $PATH:$CUDA_ROOT/bin
# 会报ctag找不到 不影响
#########
RUN python3 -m pip install open3d==0.8.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple \
#&& tar --use-compress-program=pigz -xpPf /srv/cudnn-11.2-linux-x64-v8.1.1.33.tgz -C /usr/local/ \
&& cd /srv/pycuda-2021.1 && ./configure.py --cuda-root=/usr/local/cuda --cxxflags=-std=c++11 \
&& python3 -m pip install pytools mako -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& make install \
&& python3 -m pip install /opt/TensorRT-8.0.1.6/python/tensorrt-8.0.1.6-cp36-none-linux_x86_64.whl \
&& echo "export LD_LIBRARY_PATH=/opt/TensorRT-8.0.1.6/lib:\$LD_LIBRARY_PATH" >> /root/.bashrc
ENV LD_LIBRARY_PATH /opt/TensorRT-8.0.1.6/lib:$LD_LIBRARY_PATH
RUN dpkg -i /srv/build_1-1_amd64.deb \
&& apt-get install -f \
&& cp /usr/local/lib/gdcm.py /usr/local/lib/python3.6/dist-packages/. \
&& cp /usr/local/lib/gdcmswig.py /usr/local/lib/python3.6/dist-packages/. \
&& cp /usr/local/lib/_gdcmswig.so /usr/local/lib/python3.6/dist-packages/. \
&& cp /usr/local/lib/libgdcm* /usr/local/lib/python3.6/dist-packages/. \
# fused_weight_gradient_mlp_cuda` module not found
&& cd /srv/apex && pip3 install -v --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple ./ \
&& ldconfig \
&& rm -rf /srv/* \
&& rm -rf /root/.cache/pip/
COPY ffr.tgz /srv/ffr.tgz
COPY libcuda.so.470.63.01 /usr/lib/x86_64-linux-gnu/libcuda.so.470.63.01
RUN tar -I pigz -xf /srv/ffr.tgz -C /usr/local/ \
&& ln -s /usr/lib/x86_64-linux-gnu/libcuda.so.470.63.01 /usr/lib/x86_64-linux-gnu/libcuda.so.1 \
&& ln -s /usr/lib/x86_64-linux-gnu/libcuda.so.1 /usr/lib/x86_64-linux-gnu/libcuda.so \
#apt update \
#&& apt install pigz -y \
#&& tar -I pigz -xf /srv/ffr.tgz -C /usr/local/ \
&& rm -f /usr/lib/x86_64-linux-gnu/libstdc++.so.6 \
&& cp -a /usr/local/ffr/lib/libstdc++.so.6.0.26 /usr/lib/x86_64-linux-gnu/ \
&& ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.26 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 \
&& ldconfig \
&& rm -rf /srv/* \
&& rm -rf /root/.cache/pip/
COPY VTK-8.2.0 /srv/VTK-8.2.0
RUN cd /srv/VTK-8.2.0 && rm -rf /usr/local/include/vtk-8.2 && cp -rf * /usr/local/ \
&& rm -rf /srv/VTK-8.2.0 \
&& ldconfig
RUN apt update \
&& apt install vim -y \
&& apt install libglew-dev -y \
&& apt install gcc-multilib -y \
&& apt-get install mesa-utils -y \
&& apt-get install freeglut3-dev -y \
&& apt-get install -y build-essential -y \
&& apt-get install libgl1-mesa-dev freeglut3-dev libglu1-mesa-dev -y \
&& apt-get install libsoil-dev libglm-dev libassimp-dev libglew-dev libglfw3-dev libxinerama-dev libxcursor-dev libxi-dev -y \
# 这里还没加上
&& apt-get install telnet net-tools inetutils-ping curl wget -y \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*
https://github.com/hadolint/hadolint