Dockerfile:将参数传递给RUN npm run build

时间:2019-10-19 08:39:23

标签: docker dockerfile

我有一个包含以下几行的dockerfile:

ARG ENVIRONMENT
ENV ENVIRONMENT $ENVIRONMENT

RUN npm run ng build --configuration=${ENVIRONMENT}

我无法获得“ RUN npm run ng build --configuration =”来将$ ENVIRONMENT的值传递给npm命令。

这是什么语法?

2 个答案:

答案 0 :(得分:0)

尝试更改您的RUN命令,请执行以下操作:

RUN npm run ng build --configuration=$ENVIRONMENT

这应该有效。选中here

谢谢。

答案 1 :(得分:0)

根据Dockerfile ARG docs

  

ARG指令定义了一个变量,用户可以在构建时使用--build-arg =标志使用docker build命令将其传递给构建器。

为了接受自变量作为构建的一部分,我们使用--build-arg

Dockerfile ENV docs

  

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