Настройка vuejs-template-webpack с докером не перезагружается после сохранения файлов - PullRequest
0 голосов
/ 18 октября 2018

Я только начинаю использовать docker. Я настроил свой проект с помощью vue js, он работает, когда я запускаю docker-compose up, но не сохраняет после того, как я сохраняю какой-либо файл. Он не слушает

docker-compose logs

web_1  | yarn run v1.10.1
web_1  | $ webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 0.0.0.0
web_1  |  84% module id optimiza  DONE  Compiled successfully in 4455ms15:29:27
web_1  |
web_1  |  I  Your application is running here: http://localhost:8080

docker-compose.yml

version: '3'
services:
  web:    
    build: ${CONTAINER_ROOT}/web/
    command: yarn run dev
    volumes:
    - ${PROJECT_ROOT}:/var/www

    ports:
    - "8080:8080"

.env

CONTAINER_ROOT=./docker-containers
PROJECT_ROOT=./www

Dockerfile

FROM node:9.11.1-alpine

# install simple http server for serving static content
RUN npm install -g http-server
RUN npm install -g yarn


WORKDIR /var/www/src

# copy both 'package.json' and 'package-lock.json' (if available)
COPY package*.json ./

# install project dependencies
RUN yarn

# copy project files and folders to the current working directory (i.e. 'app' folder)
COPY . .

# build app for production with minification
RUN yarn run build

EXPOSE 8080
CMD [ "http-server", "dist" ]

================ update ================

терминальный вывод

docker-compose config

services:
  web:
    build:
      context: /Users/xxxxxxx/Documents/dev/node-static-vue-template/docker-containers/web
    command: npm run dev
    ports:
    - 8080:8080/tcp
    volumes:
    - /Users/xxxxxxxxx/Documents/dev/node-static-vue-template/www:/var/www:rw
version: '3.0'

есть идеи, что бы это было?я что-то упустил?

1 Ответ

0 голосов
/ 19 октября 2018
Файл

A .env не гарантирует их установку во время выполнения.Файл .env запускается и читается пакетом dotenv npm и на самом деле не имеет ничего общего с докером.Вы экспортировали переменные до запуска docker-compose build?Так как ваш docker-compose использует переменные окружения, но, насколько я знаю, файл .env работает только со временем выполнения узла.

Так что, если вы работаете в linux / mac, вы можете просто запустить export CONTAINER_ROOT=./docker-containers (обратите внимание на отсутствие пробелов). Повторите это также для project_root.Это должно быть сделано в командной строке, из которой вы запускаете docker-compose build.NB Переменные Env, установленные таким образом, не являются постоянными и сбрасываются после каждого перезапуска терминала.

Быстрое решение этой проблемы - просто жестко закодировать ее и посмотреть, правильно ли работают тома, как предполагалось, а затем внедрить тома.

Также вы можете использовать команды linux, такие как pwd, чтобы получить корневой каталог документа, это может быть проще, чем пользовательская переменная env.

Также вы используете package-lock.json, которыйспецифично для npm -> yarn использует файл yarn.lock?Чтобы уменьшить количество вредоносных программ и размер док-контейнера, я бы предложил использовать npm run build вместо установки и использования пряжи.Это, вероятно, проще и будет использовать ваш package-lock.json.

Надеюсь, это ответило на ваш вопрос!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...