我有一个包含这些行的 dockerfile:
ARG ENVIRONMENT
ENV ENVIRONMENT $ENVIRONMENT
RUN npm run ng build --configuration=${ENVIRONMENT}
我无法获得“RUN npm run ng build --configuration= 将 $ENVIRONMENT 的值传递给 npm 命令。
这个的语法是什么?
我有一个包含这些行的 dockerfile:
ARG ENVIRONMENT
ENV ENVIRONMENT $ENVIRONMENT
RUN npm run ng build --configuration=${ENVIRONMENT}
我无法获得“RUN npm run ng build --configuration= 将 $ENVIRONMENT 的值传递给 npm 命令。
这个的语法是什么?
ARG 指令定义了一个变量,用户可以在构建时使用 --build-arg = 标志使用 docker build 命令将其传递给构建器。
为了接受一个参数作为构建的一部分,我们使用--build-arg.
ENV 指令将环境变量设置为 value 。
我们还需要包含一条ENV语句,因为CMD在构建完成后会执行,并且ARG将不可用。
FROM busybox
ARG ENVIRONMENT
ENV ENVIRONMENT $ENVIRONMENT
CMD echo $ENVIRONMENT
将导致在映像中设置环境变量,以便在docker run命令期间可用。
docker build -t test --build-arg ENVIRONMENT=awesome_environment .
docker run -it test
这将echo awesome_environment。