Axel
Axel

Reputation: 81

Dockerfile: pass argument to RUN npm run build

I have a dockerfile with these lines:

ARG ENVIRONMENT
ENV ENVIRONMENT $ENVIRONMENT

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

I cant get the "RUN npm run ng build --configuration= to pass the value of $ENVIRONMENT to the npm command.

What is the syntax for this?

Upvotes: 0

Views: 4148

Answers (2)

Mikhail Golubitsky
Mikhail Golubitsky

Reputation: 698

Per the Dockerfile ARG docs,

The ARG instruction defines a variable that users can pass at build-time to the builder with the docker build command using the --build-arg = flag.

in order to accept an argument as part of the build, we use --build-arg.

Dockerfile ENV docs:

The ENV instruction sets the environment variable to the value .

We also need to include an ENV statement because the CMD will be executed after the build is complete, and the ARG will not be available.

FROM busybox

ARG ENVIRONMENT
ENV ENVIRONMENT $ENVIRONMENT
CMD echo $ENVIRONMENT

will cause an environment variable to be set in the image, so that it is available during a docker run command.

docker build -t test --build-arg ENVIRONMENT=awesome_environment .
docker run -it test

This will echo awesome_environment.

Upvotes: 2

Gobind Deep Singh
Gobind Deep Singh

Reputation: 527

Try changing your RUN command do this:

RUN npm run ng build --configuration=$ENVIRONMENT

This should work. Check here

Thanks.

Upvotes: 0

Related Questions