基于 docker,告别本地开发中的环境问题

2020-08-07 15:32:45 +08:00
 williamfzc

痛点

当然,在正式发布时,大多数团队通常都会采用 CI 系统构建出安全的包,以此规避。

然鹅,在平时开发中我们难免遇到临时验证问题的场景出现,在很多团队里,开发人员会在本地机器里直接构建之后将产物丢给测试验证,这个过程就容易因为环境因素而遗漏问题。

根本痛点:开发环境没有标准化

想法

docker 在运维领域已经被广泛应用,很适合用于统一环境。而在本地开发里它出现得却很少。通常我们更倾向于用它负责构建与部署。本地使用 docker 最主要的障碍有两个:

如上面提到的,我们要解决的是环境标准化的问题,了解使用 docker 是一个解决过程,而不是方法。对于大多数人来说,他们的诉求只是一个容易用的标准环境,而不是多花时间去学一个新东西。

做了什么

设计这个东西,目标有三个:

解决方法:

可能有人会问,docker 已经有了 Dockerfile 与 compose,为什么还要一个配置文件。他们的关系是这样的:

设计思路很简单粗暴,但效果看起来是不错的:

而你只需要配一个简单的 json 在你的仓库里:

{
    "env": {
        "name": "hello",
        "image": "maven:slim"
    }
}

这么做之后,你的团队只需要预先构建好一个 image,配进仓库,所有人就可以统一环境啦!

项目

https://github.com/williamfzc/devcube

最后

欢迎各位一起讨论 :) 欢迎进来写 features

5256 次点击
所在节点    分享创造
30 条回复
williamfzc
2020-08-09 13:29:44 +08:00
@kingfalse 学习了
williamfzc
2020-08-09 13:30:25 +08:00
@Leigg 按我想法 gui 不如简单的命令方便呢
firefox12
2020-08-09 19:39:20 +08:00
恩 我在公司做了一个类似的,利用 k8s, 一键帮你拉起环境,然后你把自己的开发机器加入集群。需要改本地的 dns 服务器,其他没要求。现在基本上每个开发组都用这套系统拉起环境做开发和测试。
594duck
2020-08-09 20:06:29 +08:00
@williamfzc @charlie21 的观点你真的理解了,还是我的理解 有偏差了。
xinta
2020-08-10 10:24:11 +08:00
@williamfzc 我觉得 @xiangwan 的非常不错,我会去尝试下
tfdetang
2020-08-10 15:10:24 +08:00
@williamfzc vsc remote container 确实很好用,我用了很久了; 你要是不喜欢 vscode JetBrains 家也有类似解决方案;
tfdetang
2020-08-10 15:14:54 +08:00
@charlie21 并不是所有情况下都可以大家一起连到一个环境里的。比如深度学习开发,只要一调试就要占用 tensorflow 的 session 和显存,别的开发者会受到影响。 所以环境肯定要隔离,但是又要确保最后的环境一致便于部署,那就需要利用 dockerfile 统一大家的环境。
woostundy
2020-08-10 16:25:04 +08:00
听着像 vagrant
jorneyr
2020-08-11 09:15:32 +08:00
Windows 的 Docker 很慢很慢
spider12
2020-08-14 10:34:37 +08:00
我干过这个事情,8G 内存的 Mac,内存分分钟爆掉

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

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

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

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

© 2021 V2EX