wangxiaoaer
V2EX  ›  问与答

docker 作为开发环境的问题

  •  
  •   wangxiaoaer · Nov 11, 2018 · 2656 views
    This topic created in 2766 days ago, the information mentioned may be changed or developed.

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

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

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

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

    restart 可以用 always,network 用 host

    更新之后,重启就行了
    zgray
        9
    zgray  
       Nov 12, 2018
    之前思考过类似的模式,思考过如下模式,但还没完全实践完成,楼主可以参考下:
    1. 对于 Java 或者 nodejs,可以考虑真机直接编译,也可以考虑使用容器的 multi-stage 分编译阶段和开发阶段。
    2. 写一个 Dockerfile,将编译后的输出目录用 volume 挂载编译目录到容器中。注意挂载目录,不建议直接挂载文件。目录会灵活点。
    3. 剩下的就是编译后怎么重启应用的问题,这里可以参考 nodejs 之类的方案,在容器里面启动 nodemon,监视目录,并打开 debug 端口,当发现目录更新后由容器内的服务自行完成重启动作。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3282 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 13:34 · PVG 21:34 · LAX 06:34 · JFK 09:34
    ♥ Do have faith in what you're doing.