因为重启 docker,服务起不来,把开发环境搞崩了,严严实实背了口锅

2018-11-22 22:43:19 +08:00
 a663

诶,今晚因为领导要我加一个应用的 ci 给开发和测试环境,就在本地搭建了一个私有 docker registry,搭建完成后得把开发节点的 docker 配置修改后重启。 就 system ctl docker restart (正确做法应该是先 stop 再 start ),结果某些应用没有正确退出,只是容器退出了,就导致 restart 结束后部分 container 没跑起来,还有部分跑起来了但访问不到。 然后这里还有最重要的是 gitlab 服务在这里。

说一下公司现状,刚来公司不久,之前没有运维,也没人做任何的运维规划,各种乱象,比如 gitlab 搭建在开发节点(只有一台开发节点),然后开发节点的很多 container 退出后不删除的大把,还有就是有些没用的服务乱起,各种。 之前有提议说想把 gitlab 迁移,领导没反馈,就先留着,想等以后在做了。

然后自己也一直不想去理开发环境,结果这次 ci 的任务就给搞出问题了。 然后,由于不确定哪些应用有没有正确起来的,就和领导说明天一大早计划迁移 gitlab,清掉开发节点的所有 container,让开发重新部署一遍,貌似现在感觉氛围不太对了。 好尴尬啊,自己的锅,跑不了了

之前一直觉得开发环境哪天肯定会崩,没曾想是自己搞崩的……还是自己不够细心,很自责

7518 次点击
所在节点    程序员
32 条回复
Dingo
2018-11-22 22:47:19 +08:00
楼主加油,好人一生平安
alvin666
2018-11-22 22:48:26 +08:00
restart 不是先 stop 再 start 吗?...
就提示不也是先 stop 成功再 start 成功吗
zhongyiio
2018-11-22 22:49:22 +08:00
同情,要是 container 没有配 restart:always 就瞎了
johnniang
2018-11-22 22:51:14 +08:00
只要数据还在都不是事儿
a663
2018-11-22 22:55:58 +08:00
@johnniang 数据还在,然后得麻烦开发一遍,还需要群里沟通,头儿有点不太开心,我表示理解他的心情😢😢
duola
2018-11-22 22:56:39 +08:00
千万不要把数据弄丢了。
a663
2018-11-22 22:58:59 +08:00
@zhongyiio 有些配了有些没陪,开发自己玩的,然后容器的使用也比较粗糙,他们是先把容器停了,在把代码文件在容器内替换,然后重启
a663
2018-11-22 22:59:36 +08:00
@alvin666 至少 stop 失败了你可以知道的
a663
2018-11-22 23:00:09 +08:00
@duola 没丢没丢,做有备份
zhongyiio
2018-11-22 23:03:35 +08:00
@a663 看起来你们需要梳理一下构建和部署流程了,乱搞出事迟早的
a663
2018-11-22 23:04:37 +08:00
@zhongyiio 很想推,真的很想,但有些事情不是我在把控😌😌😌
alvin666
2018-11-22 23:05:24 +08:00
学到了...以后用 systemctl stop &&systemctl start
wweir
2018-11-22 23:19:30 +08:00
@a6 骚操作,挺容器替换文件,这是手动找那个很深的目录替换?
a663
2018-11-22 23:28:05 +08:00
@wweir 代码是 mount 进去的,尴尬
xuanbg
2018-11-22 23:29:28 +08:00
没启动的容器 start 一下不行吗?
momocraft
2018-11-22 23:30:14 +08:00
restart 不可以 stop+start 可以是为什么
afc
2018-11-22 23:32:23 +08:00
我不知道你的容器里面跑了什么,在我看来只要 MySQL 这些数据库能启动,不可能程序会因为非正常退出就无法启动。还有,你重启了 docker,你只要看 docker ps -a 里面 Exited 时间一致的那一批 container,就是你重启前在跑的 container,至于不能启动的,慢慢查日志。
woodfish
2018-11-23 00:40:01 +08:00
容器看制作者质量,有些满足幂等性的随挺随起,有些不满足幂等的挺了再起就又重新初始化了。用容器前先测试它的幂等性
mason961125
2018-11-23 00:53:35 +08:00
很好奇为什么这些人写 Dockerfile 的时候不考虑万一容器崩了重启的情况?而且好像似乎也没有做数据持久化?
chuanzhangACE
2018-11-23 00:53:35 +08:00
@a663 我们 docker 数据也是直接挂载的,代码通过 jinkens 替换,所以想请教一下你们现在 docker 使用细节,你说的 docker 使用粗糙指的什么

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

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

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

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

© 2021 V2EX