首页 > 解决方案 > 如何在 docker 中启动 vuejs ssr 服务器

问题描述

我有一个带有 @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 run serve

使用

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

表示端口正确

标签: node.jsdockervue.jsdocker-composeserver-side-rendering

解决方案


我找到了解决办法!

在 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"

推荐阅读