こんにちは。DockerでDiscourse CEを実行しています。ルート権限があり、docker id stopとdocker image save -o <id> file.tarでコンテナをバックアップしました。その後、Discourseのアップグレードは成功しました。現在、docker image load -i file.tarとdocker start idでリストアをテストしましたが、期待していた古いバージョンではなく、アップグレードされたバージョンがまだ表示されています。
何が間違っていましたか?
ありがとうございます。
pfaffman
(Jay Pfaffman)
2
それは奇妙ですね。
データベース(永続ストレージにあります)が古いイメージでサポートできる範囲を超えて移行されたため、機能しないと予想していました。
どのようにアップグレードしましたか? コマンドラインで再構築しましたか、それともDiscourseのUXからですか?
「いいね!」 1
こんにちは、
はい、私もそれを理解できませんでした。同じ結果で再度試します。Web UIにチャンスを与えたところ、うまく動作しました。エラーも問題もありません。
pfaffman
(Jay Pfaffman)
4
Discourse の Docker イメージを削除しましたか、それともバックアップを別のイメージに復元しましたか?
いいえ、私が画像を破壊したわけではありません。それが私の失敗でしたか?
pfaffman
(Jay Pfaffman)
6
わかりません。画像保存を使ったことはないと思います。
しかし、次回はバックアップを新しいコンテナ名に復元してみようと思います。
申し訳ありませんが、ご質問の回答がありませんでした。バックアップと復元に関する同じ質問でした。
永続データはコンテナ内ではなく、@pfaffman が言及しているようにファイルシステムに保存されます。
次のように尋ねるべきです。どのようなタスクを実行しようとしていますか?
「いいね!」 1
アイデアは、夜間にDockerコンテナ全体をバックアップすることでした。また、この場合のように、ベータ版4からベータ版5へのアップグレードの前や、エラーが発生した場合に、古いコンテナに戻すことでした。
ありがとうございます
pfaffman
(Jay Pfaffman)
10
データベースのロールバックも必要になります。
本番環境で実行する前に、ステージングサイトでアップグレードをテストすることを検討してください。ステージングサイトからコンテナをリポジトリにプッシュしてから、それを本番サイトで起動することもできます。
「いいね!」 2