V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kidlj
V2EX  ›  Docker

使用 Docker for Windows 搭建 Web 开发环境的正确姿势是什么?

  •  
  •   kidlj ·
    kidlj · 2016-09-10 18:41:45 +08:00 · 5088 次点击
    这是一个创建于 2787 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们在 Web 开发的时候,都会用到一些现成的工具持续 watch 源码文件,这样一有代码改动,不用手动重启服务器就可以在浏览器里看到变化。

    Docker for Windows 可以将 Windows 里的某个目录作为 volume 挂载(映射)到 Dockers Container 里。理想的情况是我们将在 Windows 本地的源码目录挂载到 container 里,这样每次一有代码改动, container 自动构建 /重启服务器。可现在的问题是在 Windows 里改动了代码, container 却监视不到文件的变化,因为 Windows 文件系统的事件(改动、新建等)不能传递到 container 里。这是虚拟机层面( HyperV )没有实现文件系统事件传递( via https://github.com/docker/docker/issues/18246 )。

    鉴于此,大家有没有用 Docker for Windows 搭建 Web 开发环境的?有什么经验可以分享?

    7 条回复    2016-09-13 22:12:21 +08:00
    LokiSharp
        1
    LokiSharp  
       2016-09-10 19:16:39 +08:00 via iPhone
    虚拟机装 Ubuntu
    qweweretrt515
        2
    qweweretrt515  
       2016-09-10 19:47:54 +08:00
    经过血的经验之后告诉你, 还是虚拟机装 ubuntu 好, 虚拟机可以考虑 virtualbox ,把主机的目录映射到虚拟机里
    jackmasa
        3
    jackmasa  
       2016-09-10 20:17:49 +08:00
    source -> commit -> build -> deploy
    hujianxin
        4
    hujianxin  
       2016-09-10 20:22:42 +08:00
    docker machine
    huihuimoe
        5
    huihuimoe  
       2016-09-10 22:50:06 +08:00 via Android
    git webhook ? 提交代码的时候自动部署
    kidlj
        6
    kidlj  
    OP
       2016-09-11 15:31:55 +08:00
    谢谢楼上几位的回复,我还是没有找到满意的 Docker for Windows 工作流。
    kidlj
        7
    kidlj  
    OP
       2016-09-13 22:12:21 +08:00
    时隔两天再来汇报情况:

    放弃了 Docker for Windows 做开发,因为它很难去实现 Docker 虚拟机和宿主 Windows 系统间的文件系统事件同步,(见 https://github.com/docker/for-win/issues/56 ),而这对构建持续集成的开发流程不可或缺。

    解决方案:用 VMWare Player (免费)跑了个 CentOS 虚拟机,在上边跑原生的 Docker ,体验好极了!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5528 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:47 · PVG 16:47 · LAX 01:47 · JFK 04:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.