在compose文件上定义的参数在Dockerfile上可用,但仅在之前和之上可用
FROM。在
FROM参数不可用之后:
ARG在a之前的声明FROM位于构建阶段之外,因此不能在以后的任何指令中使用它FROM。- 来自docker
docs
为什么论点NODE_VERSION
起作用?
。
NODE_VERSION之后的说法无效
FROM。该参数仅用于
FROM(
FROMnode:8)。之后
FROM是具有相同名称的图像的环境变量。因此,您回显图像的环境变量,而不是撰写文件的参数。
但是,您可以在以下位置使用参数的默认值
FROM:
要
ARG在第一次FROM使用声明之前使用默认值,请在ARG构建阶段使用不带值的指令。- 来自docker
docs
ARG NODE_VERSIonFROM node:$NODE_VERSIonARG HELLORUN echo "-> $HELLO"RUN echo "-> $NODE_VERSION"
要使用并显示参数中定义的节点版本,您需要重命名此参数。因此,您可以使用以下命令显示图像的所有参数和环境变量:
Dockerfile:
ARG CUSTOM_NODE_VERSIonFROM node:$CUSTOM_NODE_VERSIonARG CUSTOM_NODE_VERSIonARG HELLORUN echo "-> $HELLO" #output: 5RUN echo "-> $NODE_VERSION" #output: 8.9.4RUN echo "-> $CUSTOM_NODE_VERSION" #output: 8
docker-compose.yml:
version: "3"services: ei: build: context: . dockerfile: Dockerfile args: CUSTOM_NODE_VERSION: 8 HELLO: 5



