加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

node.js – 在开发流程中使用docker

发布时间:2020-12-16 03:54:15 所属栏目:安全 来源:网络整理
导读:我在OS X上使用boot2docker,克隆了以下repo: https://github.com/enokd/docker-node-hello 它基本上有一个Dockerfile和一个非常简单的快速应用程序打印你的世界.当我构建和运行映像时,一切都很好,但是当然,如??果我对我的Mac上的index.js进行任何更改,这些

我在OS X上使用boot2docker,克隆了以下repo:

https://github.com/enokd/docker-node-hello

它基本上有一个Dockerfile和一个非常简单的快速应用程序打印你的世界.当我构建和运行映像时,一切都很好,但是当然,如??果我对我的Mac上的index.js进行任何更改,这些都不会反映在我的运行映像中.我似乎没有找到任何关于我如何设置docker的参考,以便我可以在我的开发环境中运行它,以自动获取我的源代码更改,所以我觉得我是“做错了”.有什么建议么?

以下是我目前正在运行的方式(我不使用Vagrant,不太确定是否有任何区别):

$docker build -t gasi/centos-node-hello .
$docker run -p 49160:8080 -d gasi/centos-node-hello
$curl localhost:49160

更新:添加了一个答案,我最后做了什么.

更新:使用boot2docker 1.3添加更多当前答案,

最佳答案
您的问题非常有趣,(部分)与Docker无关.
让我说这里的主要和最后一个问题是使用虚拟机.

使用虚拟机(裸虚拟机VM,Vagrant VM,Docker boot2docker VM …)时,跟踪主机上的代码更改可能是一个挑战,

虚拟机是您的Mac(您的代码更改发生)和应用程序堆栈(此处,运行在小型Linux VM上的Docker容器)之间的完整抽象层.

>您必须在Virtualbox中,在Mac和boot2docker之间显式定义共享文件夹(NFS,…).该共享文件夹将是您的代码存储库的根.这是第一步.

Mac:/ Users / You / stuff / approot ===> boot2docker:/ something

>然后,您必须告诉Docker容器使用一个绑定到boot2docker的卷(docker术语),并将Docker应用程序指向它:

   docker run -v /something:/app/path/inside/docker -p 49160:8080 
     -d gasi/centos-node-hello /usr/bin/node /app/path/inside/docker/index.js

NodeJ检测文件变化是另一个挑战.您需要一个额外的包装器来观看文件系统,并在代码更改时重新启动Node(Forever,Nodemon …).
>然后,由于更改不会发生在本地文件系统上,而是在共享文件夹上,您可能必须告诉Nodejs监视器(Forever / Nodemon / …)使用轮询模式.它工作(或多或少),但会燃烧很多CPU.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读