Проект VueJS не обновляется при создании нового образа Docker

#docker #vue.js #npm #docker-compose #dockerfile

Вопрос:

В чем дело:

В настоящее время мне нужно узнать, как работает Docker, и поэтому я начал работать над небольшим проектом. У меня есть интерфейс VueJS (что-то довольно простое) и API python (тоже довольно простое). Мне удалось создать том Docker с 2 контейнерами (1 для vuejs, 1 для API py).

Проблема:

После создания контейнеров docker (оба работали) Я начал работать над проектом VueJS и почти закончил его сейчас. Проблема в том, что когда я пытаюсь создать новое изображение (с этим обновленным проектом vuejs) и создать новый контейнер с этим новым изображением, я всегда получаю страницу VueJS по умолчанию при открытии проекта. Тогда это выглядит так, как будто в проекте vuejs ничего не обновлено, но это действительно так.

VueJS: Докерфайл

 FROM node:lts-alpine as build-stage

WORKDIR /app
COPY package*.json ./
COPY package-lock.json ./
RUN npm install
COPY . .
RUN npm run build

#After npm run build successful, publish to nginx:
FROM nginx:stable-alpine as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
 

докер-compose.yml

 version: "3.9"

volumes:
  M210-Project-Youtas-v0.2:

services:
  vue-nginx:
    image: vuejs/youtas-v0.2
    volumes: 
      - M210-Project-Youtas-v0.2:/etc/nginx/templates
    ports: 
      - "8080:80"
    environment: 
      - NGINX_PORT=80

  pythonflask-api:
    image: pythonflaskapi/youtas-v0.2
    volumes:
      - M210-Project-Youtas-v0.2:/etc/flask/templates
    ports: 
      - "5000:5000"
    environment:
      - DEBUG=1
 

Что я пытался

  • Я запустил эту команду, чтобы убедиться, что vue создает последние изменения в рабочей версии:

    сборка запуска npm

  • Я попытался удалить старые контейнеры,изображения и тома.
  • Я устал менять название тома

Обновить

Я перезагрузил компьютер и теперь вижу изменения, внесенные в проект vuejs при подключении к контейнеру docker. Но это не может быть единственным способом сделать это.

Комментарии:

1. Вы обновили его в vue-nginx: image: vuejs/youtas-v0.2 соответствии с НОВЫМ изображением, которое вы создали?

2. Да, я всегда обновлял свойство «изображение» в файле docker-compose.yml при создании новых изображений.