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

2017-10-27 23:26:34 +08:00
 hujianxin

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

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

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

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

3924 次点击
所在节点    程序员
16 条回复
isCyan
2017-10-27 23:31:30 +08:00
这种功能需要你的 IDE 支持,比如 phpStorm 就支持 vagrant 里面的 php 环境,当然还是有很多限制。
dangyuluo
2017-10-27 23:31:40 +08:00
hujianxin
2017-10-27 23:35:02 +08:00
@isCyan @dangyuluo 谢啦,我之前也听说过这个功能,但是这个只能用于 jetbrains 系列工具。

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

所以说,在一定程度上,docker 是可以替代 vagrant 的。
gl09025
2017-10-27 23:45:36 +08:00
怎么使用 docker 作为开发环境的,有详细的教程吗
2code
2017-10-27 23:51:49 +08:00
现代语言没有不支持远程调试的吧
swcat
2017-10-27 23:53:48 +08:00
laradock
SlipStupig
2017-10-28 01:07:11 +08:00
python 有 virtualenv,要做单元测试可以用 gitlab 集成 docker runner 写模板去测试
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
2017-10-28 07:22:57 +08:00
简单,用 vim 或 emacs
fangxing204
2017-10-28 08:15:47 +08:00
我是在虚拟级开发 Ruby,debug 对 Ruby 到不是问题,因为 Ruby 适合命令行 debug,但是我要用 sublime Ruby lint,就没则了
oott123
2017-10-28 11:25:07 +08:00
把 IDE 也装进去(逃
SmiteChow
2017-10-28 12:08:52 +08:00
你需要支持 remote interpreter 的 IDE 例如 PyCharm
John60676
2017-10-28 14:07:03 +08:00
为啥不用 pycharm 呢,多好用。又能远程调试,我现在也是 docker 加 pycharm。用得挺爽的
hujianxin
2017-10-28 16:39:57 +08:00
@John60676
@SmiteChow
我在用 intellij 的 python 插件,也能实现这个功能,这个问题就是纯粹好奇一下,哈哈。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/401416

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX