node.js – 在开发流程中使用docker
我在OS X上使用boot2docker,克隆了以下repo: https://github.com/enokd/docker-node-hello 它基本上有一个Dockerfile和一个非常简单的快速应用程序打印你的世界.当我构建和运行映像时,一切都很好,但是当然,如??果我对我的Mac上的index.js进行任何更改,这些都不会反映在我的运行映像中.我似乎没有找到任何关于我如何设置docker的参考,以便我可以在我的开发环境中运行它,以自动获取我的源代码更改,所以我觉得我是“做错了”.有什么建议么? 以下是我目前正在运行的方式(我不使用Vagrant,不太确定是否有任何区别):
更新:添加了一个答案,我最后做了什么. 更新:使用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 …). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |