如何在 docker 容器中运行 grails-vue 配置文件?
Posted
技术标签:
【中文标题】如何在 docker 容器中运行 grails-vue 配置文件?【英文标题】:How to run grails-vue profile within a docker container? 【发布时间】:2018-10-09 03:13:48 【问题描述】:我在 dockerhub 上为 grails 创建了一个 docker 镜像:
https://hub.docker.com/r/dhobdensa/docker-alpine-grails/
基于官方openjdk:alpine镜像
首先我运行容器:
docker container run -it --rm -p 8080:8080 -p 3000:3000 dhobdensa/docker-alpine-grails
然后我使用 vue 配置文件创建一个新的 grails 应用程序
grails create-app --inplace --profile vue
然后我运行应用程序:
./gradlew bootRun -parallel
其中启动了一个 grails REST API 服务器,以及一个使用 vue-cli 和 webpack 的 vue 客户端应用程序
服务器说您的应用程序正在 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 开发服务器?
【问题讨论】:
如果你在容器中尝试访问应用程序会怎样。我的意思是说,你能从容器中运行一个 curl localhost:3030 吗 好的建议,所以我刚刚尝试了这个,当我从容器内卷曲时它确实返回了 html 我开始怀疑 webpack 开发服务器是罪魁祸首,已经用更多信息更新了问题 【参考方案1】:所以我找到了答案。
我怀疑 webpack 开发服务器是要找的地方。
然后我在github上发现了这个问题:
不能在 docker 容器内运行 webpack-dev-server?
https://github.com/webpack/webpack-dev-server/issues/547
长话短说,我不得不将 --host 0.0.0.0 添加到 package.json 中的“dev”任务中
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 0.0.0.0"
【讨论】:
以上是关于如何在 docker 容器中运行 grails-vue 配置文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何将运行在 Docker 容器中的 Flyway 连接到运行在 Docker 容器中的数据库?
在 overlay 中运行容器 - 每天5分钟玩转 Docker 容器技术(51)