0

我有一个包含这些行的 dockerfile:

ARG ENVIRONMENT
ENV ENVIRONMENT $ENVIRONMENT

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

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

这个的语法是什么?

4

2 回答 2

1

根据Dockerfile ARG 文档

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

为了接受一个参数作为构建的一部分,我们使用--build-arg.

Dockerfile ENV 文档

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

于 2019-10-19T16:47:24.343 回答
0

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

RUN npm run ng build --configuration=$ENVIRONMENT

这应该有效。在这里检查

谢谢。

于 2019-10-19T11:40:35.853 回答