Вопрос
Я хотел бы видеть страницу приветствия vue-cli в хроме, запущенную из контейнера Docker на моем Mac. Я изо всех сил пытаюсь настроить правильную конфигурацию, чтобы это работало. Что мне не хватает? Вот что я пробовал.
Шаги
Установлено
- Докер для Mac - 17.12.0-ce
- нпм 5.6.0
- vue-cli 2.9.3
Командная строка
$ vue init webpack docvue
$ cd docvue
$ npm install
Файлы
После выполнения приведенных выше команд у меня теперь есть пример проекта vue, готовый к сборке с помощью webpack.
$ ls
README.md config node_modules package.json static
build index.html package-lock.json src
В /docvue/
я могу npm run dev
и вижу:
> [email protected] dev /Users/dchaddportwine/Startup/docvue
> webpack-dev-server --inline --progress --config build/webpack.dev.conf.js
95% emitting
DONE Compiled successfully in 4695ms 12:17:04 PM
Your application is running here: http://localhost:8080
А в Chrome по адресу http://localhost:8080/#/
я вижу страницу приветствия Vue.
Создайте образ Docker
Пришло время создать образ Docker с помощью этого файла Docker:
# base image
FROM node:8.10.0-alpine
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
COPY package*.json ./
RUN npm install
# Bundle app source
COPY . .
EXPOSE 8080
CMD [ "npm", "start" ]
Командная строка
$ docker build -t cportwine/docvue .
Successfully built 61bc30c3695b
Successfully tagged cportwine/docvue:latest
А теперь пора запустить образ Docker в контейнере:
$ docker run --rm -d cportwine/docvue
34ba43323723c046869775f6f00e11b895c4124680784ebcaff7f711c99fc82d
И проверьте логи:
$ docker logs 34ba43323723c046869775f6f00e11b895c4124680784ebcaff7f711c99fc82d
> [email protected] start /usr/src/app
> npm run dev
> [email protected] dev /usr/src/app
> webpack-dev-server --inline --progress --config build/webpack.dev.conf.js
78% advanced chunk op DONE Compiled successfully in 4383ms16:56:56
Your application is running here: http://localhost:8080
Проблема
В Chrome на http://localhost:8080/#/
я получаю сообщение «Этот сайт недоступен».
Работающий контейнер выглядит так:
$docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34ba43323723 cportwine/docvue "npm start" 7 minutes ago Up 7 minutes 8080/tcp agitated_payne
Что, если
Что, если я запустил контейнер Docker, используя опцию публикации:
$ docker run --rm -p3000:8080 -d cportwine/docvue
2f9dd0bf1caa11d96352012913eb58c7883e1db95a7ceb72e2e264184c368261
И проверьте логи:
$ docker logs 2f9dd0bf1caa11d96352012913eb58c7883e1db95a7ceb72e2e264184c368261
> [email protected] start /usr/src/app
> npm run dev
> [email protected] dev /usr/src/app
> webpack-dev-server --inline --progress --config build/webpack.dev.conf.js
78% advanced chunk op DONE Compiled successfully in 4438ms17:08:09
Your application is running here: http://localhost:8080
Проблема 2
Подожди, так лучше?
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2f9dd0bf1caa cportwine/docvue "npm start" 8 minutes ago Up 8 minutes 0.0.0.0:3000->8080/tcp zen_liskov
В Chrome в http://localhost:3000/#/
Сейчас я получаю «Эта страница не работает - localhost не отправил никаких данных».
Но я не вижу приветственной страницы Vue.