跳到主要内容

凌晨三点,我输给了两个冒号

可乐不卖课
可乐不卖课

· 阅读约 2 分钟

说句实话,这篇没有任何技术含量,也不打算教会谁什么。就是记录一下上礼拜四夜里我干了什么蠢事。

朋友那个小工作室的后台,跑了小半年一直挺稳,周四晚上十一点多给我发消息,说下单页面白了。我从床上爬起来开电脑的时候还想着,估计十分钟的事。

十分钟后我坐在那儿看日志。node 那个服务每隔两秒吐一行:

Error: connect ECONNREFUSED ::1:5432

我第一反应是端口没对上。改 compose,把端口映射写成 5432:5432,重启,还是这个。第二反应是密码错了,去翻 .env,密码是对的。第三反应我怀疑是 pg 版本,把镜像从 16 降回 15,重新拉了一遍,等了四分钟,还是这个。这时候我已经有点火了,主要是困,困了就容易上头。

中间翻 pg_hba.conf 那段就不细说了,我对着一个配置文件看了十几分钟,其实什么都没看出来。还把 postgres 容器的日志从头到尾看了一遍,一切正常,人家好好的在 5432 上等着。

起身去冰箱拿水,最后一罐可乐是常温的。倒回椅子上已经两点半。

三点前后,我盯着那行报错看,突然看见 ::1。不是 127.0.0.1,是 ::1。我脑子里“哦”了一下,也就一下,因为这东西说破了特别蠢——容器里的 localhost 是容器自己。我 .env 里 DB_HOST 写的就是 localhost,从项目第一天写的,之前一直能跑是因为……这个我到现在也没完全搞明白,反正它以前能跑(没有别的意思,就是真的没搞明白,别学我)。

改成 service 名,重启,绿的。就改了一个词,花了三个半小时。

跑了一条测试单,写进去了。然后我发现 created_at 比实际早了八个小时。时区。我盯着那个时间戳看了一会儿,把笔记本合上了。这个明天再说,明天再说这种话我说过很多次,反正到现在还没说。

第二天中午他问我修好没,我说改了个词,他说那多少钱,我说算了,你下次别在周四晚上发消息就行。

按我以前做内容的习惯,这时候该给你总结三条排查经验了,标题我都想好了,三步定位容器网络问题——打住。半夜三点不会因为你会背三条经验就不犯错,我这次翻车的地方,恰好是我最熟的那一句。

就说到这。

可乐不卖课
可乐不卖课

前技术博主,翻过车。现在只写干货,不带货,别问。

查看主页 →