node.js - 如何在docker中启动vuejs ssr服务器

标签 node.js docker vue.js docker-compose server-side-rendering

我有一个带有 @akryum/ssr 的 vuejs 应用程序

做的时候

npm run ssr:serve

npm run ssr:start

一切都按其应有的方式进行。但是当我尝试使用 docker 时:

version: '3.7'

services:
  npm:
    build:
      context: ./
    ports:
      - "8080:8080"
    volumes:
      - ./:/var/www/html

Dockerfile

FROM node:14.0.0

WORKDIR /var/www/html

EXPOSE 8080

CMD ["npm", "run", "serve"]

只有没有 ssr 的选项才有效:npm runserve

使用

CMD ["npm", "run", "ssr:start"]

我打开 http://localhost:8080/并收到错误

ERR_CONNECTION_RESET

在我的 package.json 中

  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "ssr:build": "vue-cli-service ssr:build",
    "ssr:serve": "vue-cli-service ssr:serve",
    "ssr:start": "PORT=8080 cross-env NODE_ENV=production vue-cli-service ssr:serve --mode production"
  },

启动时我看到

npm_1  | [16:36:39] Server listening on localhost:8080

表示端口正确

最佳答案

我找到了解决方案!

在 package.json 中添加了--host '0.0.0.0'

"ssr:start": "cross-env NODE_ENV=production vue-cli-service ssr:serve --mode production --host '0.0.0.0' --port 8080"

关于node.js - 如何在docker中启动vuejs ssr服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67809219/

相关文章:

javascript - 何时在 Node.js 中使用光标

node.js - npm update 无法更改版本

docker - Nuxt js在Linux vm中启动,但不在Docker容器中启动,为什么?

javascript - Vue.js:使用 axios.get 之后的方法返回图像

node.js - Express 中路由的 URL 生成

node.js - 使用 Homebrew 卸载并重新安装 Node

Docker run - 如何在容器之间共享UTS命名空间?

django - 在Nginx中运行Django站点时尝试查找500错误的原因

vue.js - Vue3 webcomponents 生产构建问题

vue.js - 网站的一部分可以是生成的静态网站而另一部分是传统的水疗中心吗?