mattyoung
(Matt Young)
2023 年 5 月 8 日午前 12:57
1
@sam サム、私の会社は現在Docker Hubをブロックしています。複数の環境でDocker for Discourseを実行しており、アップグレードが必要です。当然ながら失敗します。
Error response from daemon: Get https://registry-1.docker.io/v2/: http: server gave HTTP response to HTTPS client
Error response from daemon: Get https://registry-1.docker.io/v2/: http: server gave HTTP response to HTTPS client
Unable to find image 'discourse/base:2.0.20230502-0058' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: http: server gave HTTP response to HTTPS client.
私にとってアップグレードを行う最も簡単な方法は、同じネットワーク上にない別のマシンを使用して、最新のDiscourseベースイメージをダウンロードすることです。その後、何らかの方法で、アップグレード対象のマシンにプルまたはプッシュします。次に、DiscourseまたはランチャーにDocker Hubからプルしようとせず、ローカルを参照するように強制する方法です。さまざまなスレッドで、これが機能する可能性があることに近いものを見かけましたが、明確なものはありません。これをどのように行いますか?
Falco
(Falco)
2023 年 5 月 8 日午前 1:26
2
docker save と docker load が役立ちます。
mattyoung
(Matt Young)
2023 年 5 月 8 日午前 1:38
3
@Falco 保存と読み込みの具体的なコマンド例を教えていただけますか?例えば、何をどこに保存し、読み込むための完全なコマンドは何ですか?
Falco
(Falco)
2023 年 5 月 8 日午前 2:50
4
この投稿のアイデアを何度も成功裏に使用しました。
docker
明日デスクトップで作業できるときに、より具体的な例を調理できます。
「いいね!」 1
mattyoung
(Matt Young)
2023 年 5 月 8 日午前 3:04
6
@Falco - 本当にありがとうございます。デスクトップの例を楽しみにしています… ホストサイトを単なる「アップグレード」以上のものにしてしまうのではないかと心配しているので、これを正しく理解していることを願っています。
会社には、会社のルールなどにより外部に移動できない特定の情報が含まれている、古いDiscourse Dockerサイトがあります。4つあります… np.falcoisgreat.com 、stg.falcoisgreat.com 、tst.falcoisgreat.com 、www.falcoisgreat.comと呼びましょう。これらはすべて4つの小さなバージョンで区切られています… ランチャーが最新のDockerベースイメージを取得しようとすると、Dockerハブにアクセスできなくなります。
そこで、インターネットの自由という現実世界の外で、Discourse Dockerを搭載した新しいUbuntuボックスを起動し、最新のDiscourse Dockerベースイメージ(実際にはhttps://discourse1.codeplus.cloudにあります )をプルしました。今、私が意図しているのは、コンテンツや何も含まない新しいイメージを取得し、おそらくdocker saveでtarにまとめ、curlまたはsftpでnp.falcoisgreat.comにそのtarファイルをプルしてからdocker loadを使用することです。
その詳細についてはわかりませんが、調べるつもりですが、心配しているのは、「np.falcoisgreat.com 」の現在のコンテンツと構成を上書きしてしまうことです。もちろんバックアップは取りますが、何も上書きしない方法を知っておくのが最善です。このソリューションが意図していることを意図していることを確認していただけますか?
ありがとうございます!
Falco
(Falco)
2023 年 5 月 8 日午後 3:46
7
以下のように設定してください。
server1: インターネットにアクセスできるサーバー
server2: DockerHub に到達できないサーバー
実行手順:
ssh root@server1
docker pull discourse/base:2.0.20230502-0058
# server1 が server2 に到達できる場合
docker save discourse/base:2.0.20230502-0058 | bzip2 | ssh root@server2 docker load
# 完了するまで待ってから server1 を終了します
ssh root@server2
cd /var/discourse
./launcher rebuild app
# server1 が server2 に到達できない場合
docker save -o /tmp/discourse-base-image.tar discourse/base:2.0.20230502-0058
# ファイルを thumb drive、ftp、floppies などで server2 に転送します
ssh root@server2
docker load -i /tmp/discourse-base-image.tar
cd /var/discourse
./launcher rebuild app
「いいね!」 2
pfaffman
(Jay Pfaffman)
2023 年 5 月 8 日午後 4:46
8
それは素晴らしいですね。知りませんでした。
あとは discourse/base:2.0.20230502-0058 をいつ、どのように変更するかを知ることが重要です。
そして、それはおそらく次のようなものになるでしょう。
cd /var/discourse
git pull
DISCOURSE_BASE=$(grep -e ^image= $DISCOURSE_DOCKER_SRC/launcher|cut -d'\"' -f2)
docker pull $DISCOURSE_BASE
そして、save コマンドでも同様です。
「いいね!」 1
mattyoung
(Matt Young)
2023 年 5 月 8 日午後 10:18
9
@Falcoさん 、ありがとうございます。今のところ順調です。2つの環境をアップグレードしました!
「いいね!」 2
system
(system)
クローズされました:
2023 年 6 月 7 日午後 10:18
10
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.