【发布时间】:2021-12-03 05:46:02
【问题描述】:
我正在尝试对从 vue-cli 创建的 vue 应用程序进行容器化。我有一个看起来像这样的 docker-compose.yml:
version: '3.8'
services:
npm:
image: node:current-alpine
ports:
- '8080:8080'
stdin_open: true
tty: true
working_dir: /app
entrypoint: [ 'npm' ]
volumes:
- ./app:/app
我在同一目录下有docker-compose.yml和vue源码所在的/app。
/vue-project
/app (vue code)
/docker-compose.yml
我安装了我的节点依赖项:
docker-compose run --rm npm install
当我看到文件夹出现在我的主机中时,它们正确安装在容器中。
我正在运行这个命令来启动服务器:
docker-compose run --rm npm run serve
服务器开始正常运行:
App running at:
- Local: http://localhost:8080/
It seems you are running Vue CLI inside a container.
Access the dev server via http://localhost:<your container's external mapped port>/
Note that the development build is not optimized.
To create a production build, run npm run build.
但我无法从浏览器通过 http://localhost:8080/ 访问它。我尝试过不同的端口,我也尝试过像这样运行命令:
docker-compose run --rm npm run serve --service-ports
但这些都不起作用。我查看了其他 dockerfile,但它们与我的如此不同,我到底在做什么错?
docker ps -a
正在显示这些:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cf0d5bc724b7 node:current-alpine "npm run serve --ser…" 21 minutes ago Up 21 minutes docker-compose-vue_npm_run_fd94b7dd5be3
ff7ac833536d node:current-alpine "npm" 22 minutes ago Exited (1) 22 minutes ago docker-compose-vue-npm-1
【问题讨论】:
-
你能做一个
docker ps并用输出编辑你的问题吗? -
我已经用请求信息更新了帖子。
-
您对这个设置的最终目标是什么?似乎您正在尝试使用一些 Node 引擎来运行主机上的代码,而没有真正使用任何 Docker 映像系统;在主机上安装 Node 并直接使用
node和npm命令会更容易吗? -
Running at: http://localhost:8080/对我来说是一个警告信号;容器内的进程通常需要监听特殊的 0.0.0.0 “无处不在”地址,否则它们将无法从容器外部访问。 How to Containerize a Vue.js app? 是否描述了您的情况?
标签: docker vue.js docker-compose