我有一个包含以下几行的dockerfile:
ARG ENVIRONMENT
ENV ENVIRONMENT $ENVIRONMENT
RUN npm run ng build --configuration=${ENVIRONMENT}
我无法获得“ RUN npm run ng build --configuration =”来将$ ENVIRONMENT的值传递给npm命令。
这是什么语法?
答案 0 :(得分:0)
答案 1 :(得分:0)
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
。