如何在 docker 中启动 vuejs s-s-r 服务器
Posted
技术标签:
【中文标题】如何在 docker 中启动 vuejs s-s-r 服务器【英文标题】:how to start vuejs s-s-r server in docker 【发布时间】:2021-08-20 20:30:25 【问题描述】:我有一个带有 @akryum/s-s-r 的 vuejs 应用程序
在做的时候
npm run s-s-r:serve
或
npm run s-s-r: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"]
只有不带 s-s-r 的选项有效:npm run serve
使用
CMD ["npm", "run", "s-s-r:start"]
我打开 http://localhost:8080/ 并得到错误
ERR_CONNECTION_RESET
在我的 package.json 中
"scripts":
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"s-s-r:build": "vue-cli-service s-s-r:build",
"s-s-r:serve": "vue-cli-service s-s-r:serve",
"s-s-r:start": "PORT=8080 cross-env NODE_ENV=production vue-cli-service s-s-r:serve --mode production"
,
在启动时我看到
npm_1 | [16:36:39] Server listening on localhost:8080
表示端口正确
【问题讨论】:
【参考方案1】:我找到了解决办法!
在 package.json 中添加 --host '0.0.0.0'
"s-s-r:start": "cross-env NODE_ENV=production vue-cli-service s-s-r:serve --mode production --host '0.0.0.0' --port 8080"
【讨论】:
以上是关于如何在 docker 中启动 vuejs s-s-r 服务器的主要内容,如果未能解决你的问题,请参考以下文章
Docker、NodeJs、Vuejs:无法使用 localhost 访问