话说用 docker 当环境进行开发咋样?

2020-04-11 00:14:55 +08:00
 Flands

最近在对比 mac 和 win 的优劣势(本帖不讨论),然后看到这个帖子

https://www.v2ex.com/t/660818?p=2

刚好这两天捣鼓 docker,现在感觉用搞个 image 当开发环境也可以啊。
vscode 依旧打开宿主机的项目目录,然后在 container 里跑。
项目成员的环境也能一致,不知道运行效率如何。

14346 次点击
所在节点    程序员
79 条回复
yuikns
2020-04-11 13:47:02 +08:00
@ljpCN 如果单纯说 python 。可以使用容器内部的 python 环境作为 python env 的。这个 python extension 是支持的
hantsy
2020-04-11 13:49:09 +08:00
一般都是 Devops 准备,做到开发部署环境一致。

代码编辑一般本地环境没有什么太大的问题。运行的时候,有的环境可以跑 Docker 也很方便,开发的依赖环境全部可以跑 Docker,比如 MySQL,Nigix 等。最终项目提供 Dockerfile,也在 CI 上 Build Docker Image, Push 到 Docker registry 。 在生产环境上完全使用 Docker 部署,做到一致性。
drackzy
2020-04-11 13:52:19 +08:00
linux 下开发, 生产部署有问题才会本地起 docker 看下
walker2laok
2020-04-11 13:56:28 +08:00
那是相当于的疏忽,用了让人爱不释手!最近正好搭建 ROS 环境,折腾了两天也没成,最后在 hub.docker.com 上翻到了镜像,个把小时搞定环境.
vicnicLight007
2020-04-11 13:59:37 +08:00
@ericgui 本地 PHP 和动物 mysql 怎么搞一起?我现在是 php 也是容器
ljpCN
2020-04-11 16:38:15 +08:00
@yuikns 学到了
dangyuluo
2020-04-11 16:52:31 +08:00
我们公司的开发环境完全是在 Docker 下的,用一个 wrapper 启动和停止,简直不要太好用!
wweir
2020-04-11 18:21:51 +08:00
完全可以,不过很多自定义的东西,光靠 dockerfile 很难定制出来,还是虚机才好使
所以我选择每年花点小钱买个云虚机,然后开发环境走到哪里都是一致的
nekochyan
2020-04-11 18:28:50 +08:00
我们公司服务器好像就是,不过听后端老是抱怨调试 bug 非常麻烦。。。
takashiki
2020-04-11 19:39:57 +08:00
现在 wsl2 backend 的 docker 确实非常舒服了
tairan2006
2020-04-11 22:28:31 +08:00
我记得以前不都是用 vagrant 搭建开发环境么。。
ericgui
2020-04-12 00:12:35 +08:00
@vicnicLight007 你就 run 一个 mysql 的 container,然后就 localhost:3306 连接即可啊
yeqizhang
2020-04-12 03:00:39 +08:00
为啥我理解的环境开发,和开发环境不一样呢……
使用某个环境开发,不是就是在这个环境下写代码的意思?
开发环境不是项目开发人员一起部署自测的一个环境吗,类比测试环境……
imycc
2020-04-12 06:41:54 +08:00
win10+linux (本地虚拟机)+docker (跑在 linux 上)
开发时候用 vim/vscode 写代码,环境配置都在 linux 上,代码挂载到容器里


做 web 前后端开发跟一些简单的运维工作,从 15 年开始都是这么用的。
工作配置的台式机 i7+16G,不做压力测试的话,跑 web 应用完全足够。

好处嘛,就是方便管理环境,之前负责的项目包括六七个小服务,三个人在开发,不用 docker 的话很难统一大家的开发环境,外包 QA 要运行你的环境也很麻烦。
踩过的坑是容器内的软件版本比线上的新,线上的版本是固定的,而容器在构建的时候有时候会重新装包,有一次 php 小版本升了一点,在编码问题上表现不一致,新功能上线之后没有效果,两个人查了半天。。
imycc
2020-04-12 06:45:18 +08:00
说起来现在本地开发很少自己配置服务了,dockerhub 上找个合适的镜像,略微调一下配置就可以用。
A 项目的 mysql 跟 B 项目的 mysql 分开跑不同容器,开发哪个项目就起哪个,不用担心搞乱。

最多的时候自己经手了四个项目(都是内部平台),一个个配置环境真的要死
swulling
2020-04-12 09:36:45 +08:00
vscode remote for docker 了解下
falcon05
2020-04-12 09:51:29 +08:00
这玩意在 win 和 mac 搞开发都很别扭,一方面是性能,甚至比 vagrant 虚拟机还耗资源,另一方面很多操作跟用原生 docker 还不一样,甚至做不来,除非开发环境本身就是用 Linux 。
sagaxu
2020-04-12 10:04:35 +08:00
上 docker 不是为了大规模容器编排吗?开发环境上不上都行,如果从干净系统开始,半个小时你都搭不好,你可能需要 docker 。我搭开发环境,取决于下载 IDE 的时间,其它都是 apt install 搞定。
aleung
2020-04-12 10:05:34 +08:00
在我们团队里已经用了几年了。以 nodejs 后端开发为主,但其他技术栈同理。见我以前写的 blog: https://aleung.github.io/blog/2017/09/07/docker-dev-env/
cheng6563
2020-04-12 10:11:02 +08:00
@lululau 还有就是懒得搞 systemd 做服务,用个容器挂载程序包启动当服务用了

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

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

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

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

© 2021 V2EX