用 Docker 部署私有镜像太复杂了,大家看看怎么简化这个流程

2019-03-06 16:54:46 +08:00
 daijinming

修改一段代码到部署到服务器上,需要 5 步走( 1、编写代码 2、制作镜像 3、推送镜像到私有镜像库 4、更新本地镜像 5、重启容器 ),是不是有点太麻烦量?我在考虑怎么简化,需要开发自动化部署工具?,或有没有现成的方式?

10236 次点击
所在节点    程序员
57 条回复
liubin
2019-03-06 16:58:16 +08:00
一般是这么做吧:

1. 本地提交代码,push 到 git server (手动)
2. CI 服务制作镜像,推送到 registry (自动)
3. 本地开发环境更新(手动)

3. 可以写成一个 shell 脚本就行了吧。
liubin
2019-03-06 16:59:33 +08:00
另外看到你的图右边是生产环境,这样的话也可以把更新服务器放到 CI 服务器中去做。一般用 jenkins 之类的。
klgd
2019-03-06 16:59:44 +08:00
有实力的话就上自动化部署吧 比如 gitlab 就自带镜像库和 CI,不过我没实战过
lfzyx
2019-03-06 17:02:49 +08:00
你们公司没有 devops 运维吗?
daijinming
2019-03-06 17:03:56 +08:00
@liubin 我是考虑脱离 Git 来做这个事情
daijinming
2019-03-06 17:04:19 +08:00
@lfzyx 还没有
darrenfang
2019-03-06 17:09:15 +08:00
阿里云和腾讯云都用过,代码在 GitHub 上,用 CI 将镜像 push 到阿里云 /腾讯云的私有镜像,阿里云手动 pull 镜像更新,腾讯云部署了 k8s 集群,可以自动更新。

不过,CI push 镜像到阿里云 /腾讯云很慢...
CivAx
2019-03-06 17:10:39 +08:00
自动构建代码与打包镜像势必要用到 jenkins,要做到提交代码自动构建势必要用到 git 的 webhook 或类似功能

你不可能空手锤钉子还想要效率,不现实。
lfzyx
2019-03-06 17:11:52 +08:00
@daijinming 看来你是要全栈的节奏
daijinming
2019-03-06 17:12:57 +08:00
@darrenfang 朋友,我对 CI 这个概念没有真实的体会,没有处理过,需要操作那些才能做到 CI,CI 是 Github 的一个功能吗
daijinming
2019-03-06 17:14:31 +08:00
@lfzyx 俺还在尝试阶段
kqz901002
2019-03-06 17:15:55 +08:00
@daijinming #10 CI 是持续集成,目前开源解决方案有 gitlab 和 jenkins 等,还有其他商用方案,目前比较成熟的是 jenkins,使用 jenkins 可以根据 gitlab webhook 自动打包 docker、maven、apk 等。
tomczhen
2019-03-06 17:16:07 +08:00
jetbrain 家的 IDE 有 docker 插件,也许能直接达到你的目的,没有用 jetbrain 的话可以了解一下 docker-machine。

剩下的事就是写个本地 hook 脚本。
sep1025
2019-03-06 17:16:13 +08:00
我司
1.写代码
2.代码更新到线上的存储
3.重启线上的 DOCKER,应用更新. (DOCKER 也挂载了存储)
zibber
2019-03-06 17:17:04 +08:00
jenkins+playbook
daijinming
2019-03-06 17:17:15 +08:00
@CivAx webhook 我大概能理解,应该是个推送开关,也就是说我的架构图中欠缺一个 jenkins,就齐活了吗
cloudbeyond
2019-03-06 17:18:10 +08:00
@daijinming #16 你就缺个 jenkins ,devops 工具链学习一下吧~
daijinming
2019-03-06 17:20:23 +08:00
@sep1025 这个套路我之前也用过,你们公司应该是互联网公司吧,不是那种面向项目开发的,客户多,代码项目分散的感觉不太使用,你看那
defunct9
2019-03-06 17:22:19 +08:00
开 ssh,让我装 jenkins,脚本就得你自己来写了,推荐 shell。通用。
daijinming
2019-03-06 17:22:29 +08:00
@cloudbeyond 如果我这里有很多台服务器,当然每个服务器都是独立的,你觉得这个 jenkins 也能胜任吗

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

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

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

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

© 2021 V2EX