新しいファイルシステムのマウントに関するヘルプ

こんにちは!

アップロード用の新しいスペースをマウントする際に問題が発生しています。ダッシュボードを確認すると、以下の状態になっており、また、ユーザーのプロフィールページにアクセスするとプロフィール画像の多くが表示されません。

また、アプリコンテナ内に移動して「uploads」フォルダが存在するか確認しましたが、確かにありました。

できる限りのことはすべて試してみましたが、私が何らかの愚かなことをして /var/discourse/shared にマウントしようとしたことが原因で問題が起きたのではないかと思っています…… 常にこのエラーが表示されます:

そして、これをどう修正すればいいか全くわかりません。以前のバックアップから復元しようとしましたが、それでも解決しませんでした。どうか誰か助けてください!

@Headless さん、こんにちは

このような問題が発生して申し訳ありません。

以下のコマンドを実行して、その結果を共有していただけますか?

# ls -l /var/discourse/shared

これにより、あなたが言及しているマウントポイントがそのディレクトリにあるか確認できます。

実際にどのような「マウント」について話しているのかを確認できれば、より適切なアドバイスができるはずです。

「いいね!」 1

こんにちは!返信ありがとうございます。実はこの問題に初めて遭遇した際にアンマウントしましたが、それでもご覧いただきましょう。
image

最終的には、ここにマウントしました:image

こんにちは @Headless さん

私の理解では、マウントされたディスクパーティションがあり、そのパーティションをアップロードディレクトリとして使用したいということでしょうか?

その理解で合っていますか?

はい、その通りです。そのように対応しましたが、問題なく動作しています。ただし、新しいボリュームを使用しないようにして、元の状態に戻すことも試みました。それでも同じエラーが発生し、プロフィール画像の読み込みにも問題が生じています。何かを完全に壊してしまった可能性があり、いったい何をしてしまったのか正確にはわかりません。

以下に、プロフィール画像に何が起こっているかを示します。

問題ありません。では、すべてのアップロードファイルはどこにありますか?

状況を確認してみましょう。

まず、以下のコマンドを実行してください:

# find  /var/discourse/shared/standalone/uploads | wc -l

結果を投稿してください。

次に、以下のコマンドを実行してください:

# find  /mnt/volume-fsn1-1/uploads | wc -l

その出力も投稿してください。

よろしくお願いいたします。

「いいね!」 1

了解しました。現在、メインディスクに戻しても何も解決しなかったため、すべてのアップロードを再びボリュームに戻しました。

最初のコマンドの実行結果は以下の通りです:
image

2 番目のコマンドの実行結果は以下の通りです:
image

ご支援いただきありがとうございます!

問題ありません……

少しお付き合いください……

解決すべき問題は二つあると思います。

まず、古いアップロードディレクトリを(一時的に)移動し、新しいディレクトリへの記号リンクを作成する必要があります。以下のようにしてください。

cd /var/discourse/shared/standalone
mv uploads uploads.orig
ln -sf /mnt/volume-fsn1-1/uploads ./uploads

その後、当初通り yml ファイルを変更し、記号リンクが魔法のように機能するようにします。

ただし、その前に /mnt パーティション内のファイルの権限を確認する必要があります。まずはそこから始めましょう。

「いいね!」 1

したがって、/var/discourse/shared/standalone 内の uploads フォルダは、アプリのビルド時に作成されるため、常に空になります。それでも、私はその通り行います。

これでシンボリックリンクができました image

以下は /mnt ディレクトリに対する ls -l コマンドの結果です image

少々お待ちください…

まず、これを確認しましょう:

ls -l /var/discourse/shared/standalone

シンボリックリンクが見えないため、念のため確認します…

もちろんです

素晴らしい、詳細にこだわりすぎてごめんなさい……

では、アプリに入って確認してみましょう。

これを見せていただけますか?

(編集済み)

# cd /var/discourse/
./launcher enter app
# ls -l /shared/*

ありがとう

もちろん、これが私の取得結果です
image

ランチャーからアプリにアクセスすると表示されるのですが
image

ここですべてを収めようと試みています

ありがとうございます、すみません、はい、docker exec を間違って入力してしまいました…

では、こちらはどうでしょうか(コンテナ内)

ls -l /shared/uploads/*

こちらです!

さて、見た感じは素晴らしいと思います。ただ、100% 確信を持つために(お付き合いください)、もう一度これを実行してみましょう。

find /shared/uploads | wc -l

これで問題ないことを確認してください。

image

こちらです!

ふむ。

申し訳ありません、こうしましょう…

find /shared/uploads/* | wc -l

これはシンボリックリンクなので…

image

これで表示されているようです