Aprenda los comandos de docker y linux del Dockerfile de cvat

  1. ENV, ARG especifican respectivamente las variables en el proceso de construcción de la imagen y en el contenedor
ARG USER  # USER变脸以及下面的DJANGO_CONFIGURATION均在构建镜像过程中有效,构建完成后以及容器内均无效
ARG DJANGO_CONFIGURATION
ENV DJANGO_CONFIGURATION=${DJANGO_CONFIGURATION}  # 在镜像构建后,容器启动后依然有效,可覆盖
  1. wget: herramienta de descarga de Linux, -q no genera información, -O escribe el documento en el archivo
    echo: cadena de salida en la pantalla
    tee: guarda la salida en el archivo especificado
    DEBIAN_FORNTEND: variable de entorno, le dice al sistema operativo cómo obtener el usuario input, establecido en 'Noninteractive' significa que no se requiere ninguna entrada del usuario. El modo no interactivo es muy rápido a la hora de construir la imagen, pero no lo cubras con variables de entorno para evitar afectar la interacción.
ARG WITH_TESTS
RUN if [ "$WITH_TESTS" = "yes" ]; then \
        wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - && \  # 下载谷歌软件公钥,用于验证之后的软件
        echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' | tee /etc/apt/sources.list.d/google-chrome.list && \  # tee将输出结果保存至apt源
        wget -qO- https://deb.nodesource.com/setup_9.x | bash - && \  # 下载nodejs
        apt-get update && \
        DEBIAN_FRONTEND=noninteractive apt-get install -yq \  # 非交互模式安装
            google-chrome-stable \
            nodejs && \
        rm -rf /var/lib/apt/lists/*; \
        mkdir tests && cd tests && npm install \
            eslint \
            eslint-detailed-reporter \
            karma \
            karma-chrome-launcher \
            karma-coveralls \
            karma-coverage \
            karma-junit-reporter \
            karma-qunit \
            qunit; \
        echo "export PATH=~/tests/node_modules/.bin:${PATH}" >> ~/.bashrc; \
    fi

Supongo que te gusta

Origin blog.csdn.net/JosephThatwho/article/details/104251252
Recomendado
Clasificación