こんにちは。
ここ数日、突然メール送信に問題が発生し始めました。その後、成功せずにアップグレード/更新を試みましたが(更新ページがハングし、すべてのコンポーネント - docker、discourse、プラグイン - が「新しいバージョンを確認中…」でスタックします)、その後、root経由ですべてを更新しようとしましたが、再構築が失敗し、(他のことの中でも)次のメッセージが表示されます。
fatal: 'https://github.com/discourse/discourse.git/' にアクセスできません: ホスト名を解決できません: github.com`
ホストは、サーバー接続、SSL、ファイアウォール、またはその他の問題がないことを確認しました。
Dockerに何か問題があるのではないかと疑っています。このトピックも確認しました: Docker sometimes fails to connect to github.com - Installation - Discourse Meta そして試しました:
# cd /var/discourse/
# ./launcher enter app
# wget -O - -v https://github.com/discourse/logster.git/ |wc
そして次の結果を得ました:
--2025-02-28 09:45:51-- https://github.com/discourse/logster.git
github.com (github.com) を解決しています... 一時的な名前解決の失敗。
wget: ホストアドレス 'github.com' を解決できません
0 0 0
この問題に対処する方法について何かアイデアはありますか?
Ed_S
(Ed S)
2025 年 2 月 28 日午前 11:12
2
中国本土のような特別地域で運用していますか?
ホストのDNSを確認してから、Docker内のDNSを確認することをお勧めします。
ホストでDNSを確認する:
resolvectl status|egrep Servers
nslookup github.com
Docker内でDNSを確認する:
docker exec -it app bash -c "cat /etc/resolv.conf"
docker exec -it app bash -c "wget -O - -v https://github.com/discourse/logster.git/ |wc"
「いいね!」 1
承知しました。
ホストのDNS:
#resolvectl status|egrep Servers
DNS Servers: 8.8.8.8
Fallback DNS Servers: 8.8.8.8
DNS Servers: 8.8.8.8 8.8.4.4
#nslookup github.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: github.com
Address: 140.82.112.3
DockerのDNS:
#docker exec -it app bash -c "cat /etc/resolv.conf"
# Generated by Docker Engine.
# This file can be edited; Docker Engine will not make further changes once it
# has been modified.
nameserver 8.8.8.8
nameserver 8.8.4.4
# Based on host file: '/etc/resolv.conf' (legacy)
# Overrides: [nameservers]
#docker exec -it app bash -c "wget -O - -v https://github.com/discourse/logster.git/ |wc"
--2025-02-28 12:20:17-- https://github.com/discourse/logster.git/
Resolving github.com (github.com)... failed: Temporary failure in name resolution.
wget: unable to resolve host address ‘github.com’
0 0 0
追伸:ホストはカナダで稼働しています。
Ed_S
(Ed S)
2025 年 2 月 28 日午後 12:44
4
ありがとうございます… これがどう起こるのか全く見当もつきませんが、私はDockerの専門家ではありません。
ホストOSは何ですか?そして、Discourseをどうやってインストールしましたか? ホスティング会社が提供したパッケージを使いましたか、それとも標準のインストールですか?(それとも開発者向けのインストール?)Dockerはどうやってインストールしましたか?
以前はすべて動作していたのに、突然動かなくなったので、Dockerに関連している可能性があります。もしかしたらDockerのインストールを更新してみると良いかもしれません??
「いいね!」 1
AlmaLinux ではここ数ヶ月、そしてそれ以前は CentOS でも問題なく動作していた標準的なインストールです。
Docker のインストールを更新するにはどうすればよいですか(通常のリビルド手順やウェブサイト経由ではなく、これらの方法は機能していないようです)?
Ed_S
(Ed S)
2025 年 2 月 28 日午後 1:26
6
続行する前に、バックアップ(可能な場合)を取得し、ローカルコピーをダウンロードしてください。(おそらくDiscourseサイトをrsyncを使用して別のVPSに移動する を試してください)
これらを試してみてください。ヒントが得られるかもしれません。
docker --version
docker run hello-world
「いいね!」 1
ChatGPTの助けを借りて、問題はDockerのブリッジネットワーク設定、またはそれが何を意味するのかにあることがわかりました。
いくつかの修正を試しましたが、今のところ成功していません。まだこれを試していません。
これは本番環境で安全ですか?(短いダウンタイムが発生する場合でも)
Ed_S
(Ed S)
2025 年 2 月 28 日午後 9:06
8
恐れ入りますが、わかりません。最近の安全なバックアップがあることを信じています。最も損害の少ない方法は再起動かもしれません。
「いいね!」 1
状況を更新するために投稿しています。ChatGPTの助けで解決しました。
さまざまな解決策を試した後、この部分で権限またはセキュリティポリシーに問題があることが示されました。
--privileged フラグを使用してコンテナを実行してみる
これにより、ネットワークに影響を与える可能性のある一部の制限が回避されます。
docker run --rm --privileged alpine ping -c 4 github.com
これが機能する場合、権限またはセキュリティポリシーの問題を示唆しています。
その後、次の提案を適用しました。
iptables ルールを再度確認する
Dockerはiptablesに依存しているため、正しい転送ルールがあることを確認しましょう。
実行:
sudo iptables -t nat -L -v -n | grep -i docker
Docker関連のルールが表示されない場合は、手動で追加します。
sudo iptables -P FORWARD ACCEPT
sudo iptables -A FORWARD -i docker0 -o eth0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
次にDockerを再起動します。
sudo systemctl restart docker
そして再度テストします。
…これで完全に解決しました。
system
(system)
クローズされました:
2025 年 4 月 1 日午後 9:52
10
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.