Why is my docker-compose which targets the prod phase in my dockerfile also running the dev target?
command:
docker-compose -f 'docker-compose-prod.yml' up --build
I am specifically targeting prod in docker-compose-prod.yml but dev target is also being run.
Step 4/18 : FROM base as dev
---> 89ae35cdccf6
Step 5/18 : RUN npm install
---> Using cache
---> 8d6693e78ce0
Step 6/18 : COPY . .
---> 93518e386a6e
Step 7/18 : RUN npm run build
---> Running in 44199ae5793a
dockerfile:
# base
FROM node:lts-alpine as base
WORKDIR /usr/src/app
COPY package*.json ./
# dev
FROM base as dev
RUN npm install
COPY . .
RUN npm run build
EXPOSE 8080
CMD ["npm", "run", "serve"]
FROM base as prod-build
RUN npm install
COPY . .
RUN npm run build:production
# prod
FROM nginx:stable-alpine as prod
COPY --from=prod-build /usr/src/app/dist /usr/share/nginx/html
COPY nginx/nginx.conf /etc/nginx/conf.d
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
docker-compose-prod.yml:
version: "3.7"
services:
app:
image: my-app:prod
build:
context: .
target: prod
ports:
- 80:80
restart: always