Docker 容器中的 Npm run serve
Posted
技术标签:
【中文标题】Docker 容器中的 Npm run serve【英文标题】:Npm run serve in Docker container 【发布时间】:2021-10-03 21:48:53 【问题描述】:我刚刚学习了 Docker。
我下载了 ubuntu 18.04 镜像文件。
nodejs
和 npm
安装在容器中。
在我安装了所需的包之后,npm install
。
使用npm run serve
。
mac外网看不到localhost:8080。
我根据以下信息执行 Google 搜索。
It seems you are running Vue CLI inside a container.
Access the dev server via http://localhost:<your container's external mapped port>/
但是我看到大家都用docker文件。
因为我刚学过docker,对docker文件了解不多。
希望进入容器后npm run serve可以被外部访问,怎么办?
docker exec -it 858ba945a7386a7b318587ea35d903fb78b5bc6324d3bbc14c2969d7974ea44d /bin/bash
【问题讨论】:
这里的内容太多了。但是,您必须从 dockerfile 开始。使用它来配置您的容器。当你运行它时,你必须公开你想从你的主机访问的端口。你离能够正确使用它还很远。 您想使用容器进行开发还是部署? 我现在只是在开发阶段,所以我想用最简单的方法来实现它。 Docker 有一个 Sample application 教程,其中介绍了 Dockerfile 系统(甚至还有一个 Node 应用程序)。正如@SoftwareEngineer 所说,这基本上是使用 Docker 的必要部分。 【参考方案1】:第一
直接使用官方node:<version>
图片,而不是ubuntu或其他S.O。图片。
最佳做法是修复版本。
Node 镜像包含 node、npm 和 S.O.环境。
第二
如果您使用 Docker Compose,则在 docker-compose.yml
中,您必须像这样映射您的 服务 的端口(其中包含 node
图像):
ports:
- "8080:8080"
第一个是您从浏览器调用的 (http://localhost:8080)。
(忽略最终单独的 nginx/webserver 容器)。
如果您直接使用 Docker,您可以使用 -p 选项运行命令,如下所示:
docker run -p 8080:8080 <container>
【讨论】:
【参考方案2】:你必须添加端口映射see docs
-p 8080:8080 将容器中的 TCP 端口 80 映射到 Docker 主机上的端口 8080。
【讨论】:
docker -p 8080:8080 exec -it 858ba945a7386a7b318587ea35d903fb78b5bc6324d3bbc14c2969d7974ea44d /bin/bash
??那行不通以上是关于Docker 容器中的 Npm run serve的主要内容,如果未能解决你的问题,请参考以下文章
vue项目启动时,npm run serve 和 npm run dev 的区别
vue项目启动时,npm run serve 和 npm run dev 的区别