如何在 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命令

如何在容器中运行docker命令

如何将运行在 Docker 容器中的 Flyway 连接到运行在 Docker 容器中的数据库?

在 overlay 中运行容器 - 每天5分钟玩转 Docker 容器技术(51)

如何从另一个容器访问在 Docker 容器中运行的 Mopidy

如何在 docker 容器中运行 npm 命令?