FROM node:16.5-alpine
ARG APP_DIR=/app
ARG LOCAL_APP_PATH=cabinet
RUN mkdir -p ${APP_DIR}
WORKDIR ${APP_DIR}
COPY ${LOCAL_APP_PATH}/package*.json ./
RUN npm i;
RUN npm i @vue/cli -g
EXPOSE 8080
CMD npm run serve
FROM node:16.5-alpine
ARG APP_DIR=/app
ARG LOCAL_APP_PATH=cabinet
RUN mkdir -p ${APP_DIR}
WORKDIR ${APP_DIR}
COPY ${LOCAL_APP_PATH}/package*.json ./
RUN npm i
RUN npm i @vue/cli -g
ENV PATH=${APP_DIR}/node_modules/.bin:$PATH
EXPOSE 8080
CMD npm run serve
Не по теме WORKDIR и так создаёт директорию не надо перед ним её вручную создавать.
RUN npm i
RUN npm i @vue/cli -g
Лучше засунуть в один слой: RUN npm i && npm i @vue/cli -g
А по твоей проблеме, расскажи как ты этот контейнер запускаешь? C помощью docker-compose? Подмонтируешь там какие-то дополнительные volume?
Добавь отладочных сообщений, посмотри, что там внтурти:
FROM node:16.5-alpine
ARG APP_DIR=/app
ARG LOCAL_APP_PATH=cabinet
WORKDIR ${APP_DIR}
RUN echo "*** DEBUG pwd"
RUN pwd
COPY /package*.json ./
RUN npm i && npm i @vue/cli -g
RUN echo "*** DEBUG ls"
RUN ls -alah
ENV PATH=${APP_DIR}/node_modules/.bin:$PATH
RUN echo "*** DEBUG ${PATH}"
EXPOSE 8080
CMD npm run serve