#node.js #vue.js #nginx #npm
#node.js #vue.js #nginx #npm
Вопрос:
Итак, я создал приложение vuetify. Оно подключено к облаку и должно динамически загружать новые изображения после их загрузки. Изображения будут видны только после запуска контейнера из-за подключения тома. Во время компиляции приложение не видит изображений. И копирование изображений в приложение, а затем компиляция все равно не позволят обновлять новые изображения без остановки контейнера.
В режиме разработки он работает нормально, поскольку он снова компилируется, когда что-то меняется. Я хочу использовать cronjob для запуска скрипта python, который индексирует все изображения в формате json, а затем, если json изменяется, он должен перестроиться.
Мой текущий файл Dockerfile (без вставки python и без cronjob):
# build environment
FROM node:alpine as build
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json /app/package.json
RUN npm install --silent
RUN npm install -g @vue/cli
COPY . /app
RUN npm run build
# production environment
FROM nginx:stable-alpine as production-stage
COPY --from=build /app/dist /usr/share/nginx/html
COPY prod_nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Теперь, после некоторого исследования, я нашел ‘npm run watch’, но может ли кто-нибудь порекомендовать это и как мне нужно будет создать свой контейнер из-за изменений в ngnix, необходимых для работы маршрутизатора?
Я имею в виду, есть ли какая-либо другая возможность перекомпилировать приложение при изменениях?
Я попытался установить npm / vue в контейнер nginx и вручную перестроить его, скопировать в нужную папку и так далее, Но это беспорядок, и он не хотел загружать изображения (не знаю точной причины, что-то с форматом и правильным загрузчиком, но работает в режиме разработки,так что idk).
Комментарии:
1. Я использую скрипт bash на основе
inotifywait
для аналогичных целей. Проверить скрипт для отслеживания папки на наличие новых файлов? и как использовать inotifywait для просмотра каталога для создания файлов с определенным расширением threads.
Ответ №1:
Итак, я нашел решение.
У меня есть cronjob, который запускает скрипт python каждую минуту. Этот скрипт просто индексирует каталог и все файлы в нем. Затем у меня есть задание incron, которое запускается при изменении выходных данных скрипта python. Задание incron запускает сборку под управлением npm.