傻瓜,社区才是关键啊!
【编者的话】本文是Docker用户命名空间功能实现作者写的一篇关于开源社区的文章。他的观点是一切的成功都离不开社区的鼎力支持,所以当你加入一个开源项目的时候,尽量去真正的参与其中,帮助其他人,建立社区影响力。
考虑到潜在的国际读者,这个博客的标题借鉴自一个老的美国总统竞选词,“傻瓜,经济才是关键啊!”不过,我是什么意思呢?在过去的一周,因为我在关注Docker用户命名空间的工作,收到了很多不错的反馈。这真的一个很好玩的事情,因为这荣耀的瞬间我体会到了斯诺登的感觉,“哦,不,又一页页的Twitter通知,我可没有时间!”当然,完成一个看似艰巨的事情,而且是很多Docker用户期待已久的新功能,这感觉还是非常棒的!
虽然只比平时多了几个读者(我的博客在最近5天的访问比过去12个月的总和还多!),我觉得还是值得我停下编程的步伐,为社区的力量多写几句话。
首先,用户命名空间并不是从我创造或者发明的。它源于Linux内核,也许你听说过的另一个开源社区,无数人经过数年的艰苦努力把它变为现实。其次,用户命名空间只存在在Docker中,因为,a)为了支持Go语言标准库,在2014年下半年,由Mrunal Patel和 Michael Crosby又加入一个开源项目,b)为了支持开源libcontainer项目兼容性,目前已经是开放容器联盟的RunC实施和库,也同样先加入进来。
所以,你可能会说“那没有问题,但你在Docker中做的PR已经被合并。”当然,不过这一切都离不开社区的鼎力相助。真心希望如果你问任何一个在健康的开源社区中工作的开发人员他们是否单枪匹马,只在需要向GitHub仓库提交PR时才冒泡,他们会说:“绝对不是!”每个贡献者工作上取得的成功都离不开社区提供的指导和帮助。在这个过程中我曾经卡壳多次,需要一些其他的看法、思维和观点,以便在过程中进行清晰的设计和修改。在后期的审核环节我们甚至把GitHub上的Eric Biederman(Linux用户命名空间的维护者/核心贡献者)拉了进来,改变了我们的思维,让我们想出用户和组ID映射范围本身的方案!