ENV 设置环境变量

语法形式:

ENV <key> <value>

ENV <key>=<value>...

note:对第一种形式,第一个空格之后的所有字符串、包括引号和空格,都是value所代表的值

第二种形式允许同时设置多个环境变量、如下:

  ENV myName="John Doe" myDog=Rex\ The\ Dog \

      myCat=fluffy

  以及

  ENV myName John Doe

  ENV myDog Rex The Dog

  ENV myCat fluffy

使用ENV设置的环境变量将在从上层镜像运行容器时保留,可以通过docker inspect查看环境变量相关信息

注:

环境变量持久使用可能会导致一些预料之外的情况,比如给环境变量 DEBIAN_FRONTEND 设置为非交互模式,可能会给以debian系统为基础镜像,使用apt-get的用户带来困扰

为单个命令设置一个值可以使用RUN <key>=<value> <command>

这里说明下交互模式和非交互模式,这时shell命令的两种执行模式,具体说明如下:

  noninteractive-非交互模式:shell不与人交互,而是读取存放在文件中的命令,并且执行他们。当读到文件结尾时,shell终止

  Interactive-交互模式:shell等待输入,执行输入所提交的命令,用退出之后,shell终止