Изображение докера VueJs не загружается в браузер - PullRequest
0 голосов
/ 03 октября 2018

ВОПРОС: (отредактировано: решение добавлено в конце этого поста)

У меня есть проект VueJS (разработанный в веб-пакете), который я хочу иметь размер докера.

Мой Dockerfile выглядит так:

FROM node:8.11.1 as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD ["npm", "run", "dev"]

, который в основном следует за потоком из этого поста .

У меня также есть файл .dockerignore, где яскопировал те же файлы из моего .gitignore, и он выглядит так:

.DS_Store
node_modules/
/dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
.git/

Я создал образ докера с помощью команды:

 docker build -t test/my-image-name .

, а затем запустил его в контейнер сКоманда:

 docker run -it -p 8080:8080 --rm --name my-container-name test/my-image-name

В результате этой последней команды я получил тот же вывод в терминале (который обычно отображается в случаях отладки с помощью webpack / vuejs), как при локальном запуске приложения:

enter image description here

НО : в конце, в окне браузера приложение не загружено

Если я запускаю команды docker images и docker ps, я вижу, что образ и контейнер есть, и при их создании я неУ него нет сообщений об ошибках.

Я нашел это сообщение и несколько раз пытался изменить файл Docker следующим образом:

Опция 1

FROM node:8.11.1 as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .    
EXPOSE 8080
ENTRYPOINT ["ng", "serve", "-H", "0.0.0.0"]

Вариант 2

FROM node:8.11.1 as build-stage
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
ENTRYPOINT ["ng", "serve", "-H", "0.0.0.0"]
EXPOSE 8080
CMD ["npm", "run", "dev"]

Но, похоже, ни один из них не работает.

кстати.мой файл package.json выглядит так:

  "scripts": {
    "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
    "start": "npm run dev",
    "build": "node build/build.js"
  }

Поэтому мне интересно: как сделать так, чтобы приложение открывалось в браузере из образа докера?


РЕШЕНИЕ : нет, конечно, если это было причиной исправления, но я сделал две вещи.Как уже упоминалось, я работаю с VueJS и веб-пакетом, поэтому внутри файла с именем config/index.js, который изначально выглядел так:

module.exports = {   
  dev: {    
    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {},

    // Various Dev Server settings
    host: 'localhost', // <---- this one
    port: 8080,

Я изменил свойство host с 'localhost' на '0.0.0.0', удалил строку EXPOSE 8080 из Dockerfile (исходный файл Docker из моего вопроса выше), так как я заметил, что порт из файла конфигурации используется по умолчанию, а также перезапустил установленный инструмент Docker на моем локальном компьютере.

...