There’s a note in the docs:
Note: If your service specifies a build option, variables defined in environment are not automatically visible during the build. Use the args sub-option of build to define build-time environment variables.
It’s also described in here. First (as mentioned above), you need to specify ARG
in Dockerfile:
FROM mhart/alpine-node:10
ARG NODE_ENV
ENV NODE_ENV $NODE_ENV
ADD . /app
WORKDIR /app
RUN apk --no-cache add --virtual builds-deps build-base python &&\
yarn global add nodemon &&\
yarn &&\
apk del builds-deps build-base python
And then edit your docker-compose
file to include the argument during build, like so:
build:
context: .
dockerfile: Dockerfile-preprod
args:
- NODE_ENV=development
Or even
build:
context: .
dockerfile: Dockerfile-preprod
args:
- NODE_ENV=${NODE_ENV}