今天早上醒来时,看到报告说我的 Discourse 服务器“宕机”了。
我能够顺利 SSH 登录到服务器,发现需要安装一些安全更新,于是使用 apt full-upgrade 应用了这些更新,并用 reboot 重启了服务器。
服务器恢复运行花了一点时间,但启动后我检查了 Discourse Docker 容器,发现它正在运行,奇怪的是并没有出现问题。
我尝试使用 ./launcher app stop 停止并 ./launcher app start 重新启动,但没有帮助。
接着我尝试执行 ./launcher app rebuild,却遇到了以下错误:
fatal: unable to access 'https://github.com/discourse/pups.git/': Could not resolve host: github.com
d1412324832190f43a2d51b5f10c53d6fa671056f91d0be2178d17a5ba1ab692
我知道这些信息并不算多,但我确实束手无策。非常欢迎任何建议。
谢谢
1 个赞
pfaffman
(Jay Pfaffman)
2020 年12 月 1 日 17:51
2
agf1997:
无法解析主机:github.com
这表明存在某种网络错误。也许是 Docker 无法访问外部网络?
尝试:
docker run --rm -i debian ping -c 1 github.com
您应该会得到类似以下输出:
○ → docker run --rm -i debian ping -c 1 github.com
PING github.com (140.82.113.3) 56(84) bytes of data.
64 bytes from lb-140-82-113-3-iad.github.com (140.82.113.3): icmp_seq=1 ttl=49 time=44.8 ms
--- github.com ping 统计 ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 44.797/44.797/44.797/0.000 ms
3 个赞
是的……返回的是
ping: github.com: 名称解析暂时失败
不确定是什么发生了变化。我不知道如何修复这个问题。
我可以从 Docker 外部访问 GitHub。
ping github.com
PING github.com (192.30.255.113) 56(84) 字节的数据。
64 字节来自 lb-192-30-255-113-sea.github.com (192.30.255.113): icmp_seq=1 ttl=52 time=23.3 毫秒
64 字节来自 lb-192-30-255-113-sea.github.com (192.30.255.113): icmp_seq=2 ttl=52 time=23.3 毫秒
看起来是 Google
# 由 resolvconf(8) 生成的 glibc 解析器(3) 的动态 resolv.conf(5) 文件
# 请勿手动编辑此文件 -- 您的更改将被覆盖
# 127.0.0.53 是 systemd-resolved 存根解析器。
# 运行 "systemd-resolve --status" 以查看有关实际名称服务器的详细信息。
nameserver 8.8.8.8
nameserver 8.8.4.4
@supermathie 不确定这是否与此有关,但在 ./launcher logs app 中我看到:
[Tue 01 Dec 2020 07:07:13 PM UTC] 请参阅 https://curl.haxx.se/libcurl/c/libcurl-errors.html 了解错误代码:6
[Tue 01 Dec 2020 07:07:13 PM UTC] 无法初始化 API。
[Tue 01 Dec 2020 07:07:13 PM UTC] 域名未更改。
[Tue 01 Dec 2020 07:07:13 PM UTC] 跳过,下次续期时间为:Sat Dec 26 00:31:17 UTC 2020
[Tue 01 Dec 2020 07:07:13 PM UTC] 添加 '--force' 以强制续期。
[Tue 01 Dec 2020 07:07:13 PM UTC] 正在将密钥安装到:/shared/ssl/community.acescentral.com.key
[Tue 01 Dec 2020 07:07:13 PM UTC] 正在将完整链安装到:/shared/ssl/community.acescentral.com.cer
[Tue 01 Dec 2020 07:07:13 PM UTC] 运行重载命令:sv reload nginx
fail: nginx: runsv 未运行
[Tue 01 Dec 2020 07:07:13 PM UTC] 重载错误:
[Tue 01 Dec 2020 07:07:33 PM UTC] 请参阅 https://curl.haxx.se/libcurl/c/libcurl-errors.html 了解错误代码:6
[Tue 01 Dec 2020 07:07:34 PM UTC] 无法初始化 API。
[Tue 01 Dec 2020 07:07:34 PM UTC] 域名未更改。
[Tue 01 Dec 2020 07:07:34 PM UTC] 跳过,下次续期时间为:Sat Dec 26 00:31:20 UTC 2020
[Tue 01 Dec 2020 07:07:34 PM UTC] 添加 '--force' 以强制续期。
[Tue 01 Dec 2020 07:07:34 PM UTC] 正在将密钥安装到:/shared/ssl/community.acescentral.com_ecc.key
[Tue 01 Dec 2020 07:07:34 PM UTC] 正在将完整链安装到:/shared/ssl/community.acescentral.com_ecc.cer
[Tue 01 Dec 2020 07:07:34 PM UTC] 运行重载命令:sv reload nginx
fail: nginx: runsv 未运行
[Tue 01 Dec 2020 07:07:34 PM UTC] 重载错误:
已启动 runsvdir,PID 为 458
chgrp: 无效的组:'syslog'
ok: 运行:redis: (pid 473) 0 秒
ok: 运行:postgres: (pid 470) 0 秒
rsyslogd: imklog: 无法打开内核日志 (/proc/kmsg):操作不允许。
rsyslogd: 模块 imklog 激活失败 [v8.1901.0 请查看 https://www.rsyslog.com/e/2145 ]
supervisor pid: 471 unicorn pid: 497
pfaffman
(Jay Pfaffman)
2020 年12 月 1 日 19:17
11
您的 Docker 版本是多少,是如何安装的?另外,您运行的是哪个版本的 Ubuntu?
pfaffman:
你的 Docker 版本是多少?
Client:
Version: 19.03.8
API version: 1.40
Go version: go1.13.8
Git commit: afacb8b7f0
Built: Wed Oct 14 19:43:43 2020
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 19.03.8
API version: 1.40 (minimum version 1.12)
Go version: go1.13.8
Git commit: afacb8b7f0
Built: Wed Oct 14 16:41:21 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.3.3-0ubuntu2.1
GitCommit:
runc:
Version: spec: 1.0.1-dev
GitCommit:
docker-init:
Version: 0.18.0
GitCommit:
pfaffman:
你是怎么安装的?
老实说,我不记得了……它已经在这里很久了。我今天早上按照上述 说明更新了 Ubuntu。
pfaffman:
你运行的是哪个 Ubuntu 版本?
Ubuntu 20.04.1 LTS
不,错误依旧。
ping: github.com: 域名解析暂时失败
再补充一个随机的点……
我的 Discourse 服务器位于 community.mydomain.com 。
我的 WordPress 服务器位于 mydomain.com 。
昨天,我搭建了一个 Rocket.Chat 服务器,地址是 chat.mydomain.com 。
我已为 chat.mydomain.com 注册了 Let’s Encrypt 证书。
目前,WordPress 和 Rocket.Chat 服务器运行正常。
我不确定这是否与当前问题有关,但只是想确认一下,以免遗漏了什么。
我可能会尝试清除并重新安装 Docker;很难确切判断这里发生了什么以及 Docker 为何出错。
但在执行任何操作之前,请确保已备份您的数据(可以是 Discourse 备份,或者至少是 PostgreSQL 和上传文件)。如果可能,请对虚拟机进行镜像备份。
1 个赞
Falco
(Falco)
2020 年12 月 2 日 01:39
18
您的服务器能否访问 Google DNS,即执行 ping 8.8.8.8?
服务器端没有问题
ping -c 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=2.72 ms
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 2.720/2.720/2.720/0.000 ms
Docker 端则没有成功
docker run --rm -i debian ping -c 1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
--- 8.8.8.8 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms
说实话,我认为目前最好的做法是重新安装系统,然后将你的数据复制过去。
由于一些不明原因,你的系统已损坏,而重新安装的过程相当快捷。这很可能是你时间上最划算的选择。
4 个赞