Как запустить профиль grails-vue в контейнере Docker? - PullRequest
0 голосов
/ 28 апреля 2018

Я создал образ докера для Grails на Dockerhub:

https://hub.docker.com/r/dhobdensa/docker-alpine-grails/

Основан на официальном openjdk: alpine image


Сначала я запускаю контейнер:

docker container run -it --rm -p 8080:8080 -p 3000:3000 dhobdensa/docker-alpine-grails

Затем я создаю новое приложение Grails с профилем vue

grails create-app --inplace --profile vue

А потом я запускаю приложение:

./gradlew bootRun -parallel

который запускает сервер REST API grails и клиентское приложение vue с использованием vue-cli и webpack


Сервер сообщает, что ваше приложение работает на localhost: 8080. Это может быть доступно и возвращает ожидаемый результат.

Клиент говорит, что ваше приложение работает на localhost: 3000. Но при попытке доступа к этому браузер просто показывает страницу ERR_EMPTY_RESPONSE по умолчанию.

Я пробовал разные браузеры и очищать кеши.

Есть идеи, почему не работает доступ к порту 3000, а 8080 есть?

Дополнительная информация

Похоже, что gradle по сути выполняет эту команду:

webpack-dev-server --inline --progress --config build/webpack.dev.conf.js

А это файл:

https://gist.github.com/dhobdensa/4e22a188cc2b26cf5b0dd4028755d39b

Возможно, это связано с сервером webpack?

1 Ответ

0 голосов
/ 29 апреля 2018

Итак, я нашел свой ответ.

Я подозревал, что именно здесь нужно искать dev-сервер webpack.

Тогда я нашел эту проблему на github:

Не можете запустить webpack-dev-server внутри контейнера докера?

https://github.com/webpack/webpack-dev-server/issues/547

Короче говоря, мне пришлось добавить --host 0.0.0.0 к задаче "dev" в package.json

"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 0.0.0.0"
...