V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wangxiaoaer
V2EX  ›  问与答

docker 作为开发环境的问题

  •  
  •   wangxiaoaer · 2018-11-11 22:02:05 +08:00 · 1899 次点击
    这是一个创建于 1982 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前的方法是 win 下编码,把 jar 包放到 linux image 里面,运行 containre,通过 remote debug 调试。

    但是每次代码有了修改都要重新打包,创建 image、run,感觉比较麻烦,有没有别的好的办法?还是用的方法不对?

    另外,对于 nodejs 项目也是同样需要 linux 运行,编码过程采用跟上面类似的办法,修改调试比较繁琐,同时准备发布版本的时候,一般都要对源码进行合并、压缩,这跟开发过程中的 dockerfile 就不一致了,我想到的是创建 2 个 dockerfile,大家一般怎么做的?

    9 条回复    2018-11-12 08:55:42 +08:00
    Svizzer
        1
    Svizzer  
       2018-11-11 22:17:27 +08:00
    win10 wsl 了解一下,我是 windows 下解压一个 tomcat,idea 配置一个 cat 脚本在 wsl 运行 tomcat 的 sh 启动脚本
    Yourshell
        2
    Yourshell  
       2018-11-11 22:27:27 +08:00
    volumes 啊
    wangxiaoaer
        3
    wangxiaoaer  
    OP
       2018-11-11 22:50:33 +08:00 via Android
    @Yourshell volume 对 php, py 这种管用,对 js Java 这种需要重启的还是不行。另外,linux 下一些包要从 c 编译,挂载目录好像不可以。
    byteli
        4
    byteli  
       2018-11-11 23:50:53 +08:00 via Android
    还是当个虚拟机用吧,调试好了再打包
    AlphaTr
        5
    AlphaTr  
       2018-11-12 00:04:44 +08:00 via iPhone
    shell 进入到 docker 容器里面,然后当虚拟机着用
    akira
        6
    akira  
       2018-11-12 00:34:29 +08:00
    调试不是测试,调试的时候没必要完整打包吧
    FeifeiJin
        7
    FeifeiJin  
       2018-11-12 00:45:32 +08:00 via Android
    @wangxiaoaer 可否配置为更新文件后,自动更新 image,并自动启动新的容器。
    或者把 volumes 挂在到编译后的文件目录
    ETiV
        8
    ETiV  
       2018-11-12 01:10:59 +08:00
    打一个环境( JVM )包,jar 通过 -v 挂载进去

    restart 可以用 always,network 用 host

    更新之后,重启就行了
    zgray
        9
    zgray  
       2018-11-12 08:55:42 +08:00
    之前思考过类似的模式,思考过如下模式,但还没完全实践完成,楼主可以参考下:
    1. 对于 Java 或者 nodejs,可以考虑真机直接编译,也可以考虑使用容器的 multi-stage 分编译阶段和开发阶段。
    2. 写一个 Dockerfile,将编译后的输出目录用 volume 挂载编译目录到容器中。注意挂载目录,不建议直接挂载文件。目录会灵活点。
    3. 剩下的就是编译后怎么重启应用的问题,这里可以参考 nodejs 之类的方案,在容器里面启动 nodemon,监视目录,并打开 debug 端口,当发现目录更新后由容器内的服务自行完成重启动作。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5591 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 05:51 · PVG 13:51 · LAX 22:51 · JFK 01:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.