1. **ARG**:
ARG ECM_FONTS_DIR=/usr/share/fonts/ECM_FONTS
ARG` 指令用于定义构建时变量。这意味着你可以在构建Docker镜像时传递一个值给这个变量。如果该值没有在构建时传递,它将采用定义时的默认值。
在上述代码中,我们定义了一个名为 `ECM_FONTS_DIR` 的变量,并为其设置了默认值 `/usr/share/fonts/ECM_FONTS`。
2. **ADD**:
ADD ECM_FONTS $ECM_FONTS_DIR
ADD` 指令用于将本地文件、目录或远程文件URL添加到镜像中。与 `COPY` 指令不同,`ADD` 还可以自动解压tar文件,并支持从URL获取文件。
在这个例子中,`ADD` 指令将 `ECM_FONTS`(这很可能是一个在构建上下文中的文件或目录)添加到之前通过 `ARG` 定义的 `ECM_FONTS_DIR` 目录中。
**举例说明**:
假设你有以下的目录结构:
/path/to/docker/build
|-- Dockerfile
|-- fonts
|-- ECM_FONTS.ttf
其中,`fonts` 目录包含一个名为 `ECM_FONTS.ttf` 的字体文件。
你可以使用以下Dockerfile来构建镜像:
ARG ECM_FONTS_DIR=/usr/share/fonts/ECM_FONTS
# 创建一个目录,如果它不存在的话
RUN mkdir -p $ECM_FONTS_DIR
# 将本地的ECM_FONTS.ttf文件添加到镜像的指定目录
ADD fonts/ECM_FONTS.ttf $ECM_FONTS_DIR
当你构建这个镜像时,`ECM_FONTS.ttf` 文件将被添加到镜像的 `/usr/share/fonts/ECM_FONTS` 目录中。
你可以使用以下命令来构建这个镜像:
docker build -t my-custom-font-image /path/to/docker/build
在后续的镜像运行实例中,你可以从这个目录中访问 `ECM_FONTS.ttf` 文件。