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

docker 或者 vagrant 作为开发环境时, debug 不方便,这个怎么解决呢?

  •  
  •   hujianxin · 2017-10-27 23:26:34 +08:00 · 3923 次点击
    这是一个创建于 2582 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如我使用 docker 作为开发环境(不是生产环境),我通过 volume 将当前工程映射到 docker 内部某个目录下面。

    我通过 docker 外部的开发工具来开发,例如我开发的是 python,外部环境是 windows,开发工具是 vscode。

    当我开发完一个功能,我直接 docker ssh 进入 docker 里面运行就 ok。但是我想单步调试,或者运用 vscode 的智能补全,就需要在本机建一个一模一样的环境,这样 docker 就在某种程度上失去了他作为开发环境的意义。

    我这样的描述,希望大家能理解,希望大佬们帮我解答一下,先谢过了!

    16 条回复    2017-10-28 16:39:57 +08:00
    isCyan
        1
    isCyan  
       2017-10-27 23:31:30 +08:00 via Android
    这种功能需要你的 IDE 支持,比如 phpStorm 就支持 vagrant 里面的 php 环境,当然还是有很多限制。
    hujianxin
        3
    hujianxin  
    OP
       2017-10-27 23:35:02 +08:00
    @isCyan @dangyuluo 谢啦,我之前也听说过这个功能,但是这个只能用于 jetbrains 系列工具。

    我也是初学者,我在想有没有一个更好的方法解决这个问题,难道想用 docker、vagrant 作为开发环境,就必须使用这种特殊的开发工具,或者牺牲某些特性( debug,补全)吗?
    iShawnWang
        4
    iShawnWang  
       2017-10-27 23:35:04 +08:00 via iPhone
    顺便问一个问题... 为什么 Docker 用在部署阶段... Vagrant 适合统一开发环境呢... Vagrant 基于 VirtualBox... 感觉特别重... 开发会拖慢速度吧...
    hujianxin
        5
    hujianxin  
    OP
       2017-10-27 23:38:56 +08:00
    @iShawnWang
    1. docker 主要用于部署(生产环境),但是也可以用作开发环境。
    2. vagrant 用在开发环境,其中的一个功能是统一开发环境(这个主要是在团队中使用),也可以个人使用,用来备份自己的开发环境等等。

    所以说,在一定程度上,docker 是可以替代 vagrant 的。
    gl09025
        6
    gl09025  
       2017-10-27 23:45:36 +08:00
    怎么使用 docker 作为开发环境的,有详细的教程吗
    2code
        7
    2code  
       2017-10-27 23:51:49 +08:00
    现代语言没有不支持远程调试的吧
    swcat
        8
    swcat  
       2017-10-27 23:53:48 +08:00 via iPhone
    laradock
    SlipStupig
        9
    SlipStupig  
       2017-10-28 01:07:11 +08:00
    python 有 virtualenv,要做单元测试可以用 gitlab 集成 docker runner 写模板去测试
    gouchaoer
        10
    gouchaoer  
       2017-10-28 02:09:11 +08:00
    在 windows 下用 docker 我默认你使用 docker for win10 吧,因为 win7 下的 docker toolkit 不支持 volume 映射很麻烦。。。由于 docker 排在 hyper 虚拟机里面,而你的 IDE 跑在 win10 系统里,现在你要单步调试,需要注意的是需要配置调试扩展连接到对应的主机 ip 就 ok 了,不能是默认的 localhost
    whnzy
        11
    whnzy  
       2017-10-28 07:22:57 +08:00 via iPhone
    简单,用 vim 或 emacs
    fangxing204
        12
    fangxing204  
       2017-10-28 08:15:47 +08:00 via Android
    我是在虚拟级开发 Ruby,debug 对 Ruby 到不是问题,因为 Ruby 适合命令行 debug,但是我要用 sublime Ruby lint,就没则了
    oott123
        13
    oott123  
       2017-10-28 11:25:07 +08:00 via Android
    把 IDE 也装进去(逃
    SmiteChow
        14
    SmiteChow  
       2017-10-28 12:08:52 +08:00
    你需要支持 remote interpreter 的 IDE 例如 PyCharm
    John60676
        15
    John60676  
       2017-10-28 14:07:03 +08:00
    为啥不用 pycharm 呢,多好用。又能远程调试,我现在也是 docker 加 pycharm。用得挺爽的
    hujianxin
        16
    hujianxin  
    OP
       2017-10-28 16:39:57 +08:00
    @John60676
    @SmiteChow
    我在用 intellij 的 python 插件,也能实现这个功能,这个问题就是纯粹好奇一下,哈哈。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2643 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:12 · PVG 23:12 · LAX 07:12 · JFK 10:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.