みなさん、こんにちは;
TS-464 NAS を使用しています;
複数のコンテナを正常にデプロイし、CSインターフェースを使って内部ディレクトリをQNAPホストにマッピングできました。とても良いです。すべてのコンテナのデータは /local/containers-data フォルダーとそのサブフォルダー(各コンテナごとに1つ)にあります。
同じことをアプリケーション内で、以下のような一般的な “compose” 構文を使ってやろうとしています:
services:
mongo:
platform: linux/amd64
image: mongo:bionic
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: zorglub
MONGO_INITDB_DATABASE: garden-planner
ports:
- "27017:27017"
volumes:
- type: bind
source: /local/containers-data/garden-planner/mongo/db
target: /data/db
- type: bind
source: /local/containers-data/garden-planner/mongo/configdb
target: /data/configdb
/local/containers-data/garden-planner/mongo/db と configdb のフォルダーは作成済みです。(フォルダーを作成せずに試したこともあります)
それぞれ /data/db と /data/configdb の内容がそこに表示されることを期待していましたが、空のままです。
コンテナの “shell” で /data/db を確認すると、正しくデータが入っています。
QLog にエラーはなく、コンテナのログにもエラーはありません。
何かアイデアはありますか?何時間も悩んでいて、Googleでもヒントが見つかりません 
Xavier
NA9D
2
私はbindを使っていません。私が使っているのは以下の通りです:
volumes:
- /etc/localtime:/etc/localtime:ro
- /share/Container/SimpleHelp/configuration:/opt/SimpleHelp/configuration
restart: always
または
volumes:
- /share/Container/somokeping/config:/config
- /share/Container/smokeping/data:/data
もしかすると、構文の違いで、私たちは同じことをしているのかもしれません?
ありがとうございます!はい、これは単に短い構文か長い構文かの違いだけです。
ご返信を読んだ後、NASにsshで接続して、「/shared」ディレクトリを発見しました。今まで知らなかったのですが、このフォルダの下に「local」があり、FileStationからアクセスできました。
そしてもちろん、「/local/」に期待していたファイルが見つかりました…composeファイルで指定されていた通りです。
つまり、バインドするボリュームに「/shared」をプレフィックスすれば全て問題ありません。
不思議なのは、CSインターフェースで直接コンテナを作成した時には「/shared」を付けなくても問題なく動作していたことです…
改めてありがとうございます、無事動作しました!
Xavier
NA9D
4
素晴らしい!
はい、/shareはQNAPの世界で全ての作業ディレクトリのトップレベルです。ルートレベル / には他にもボリュームやフォルダーがありますが、それらは主にOS用であり、ユーザーのファイルシステムの一部ではありません。NoteStationなど一部のプログラムは、これらの「その他」のフォルダーにデータベースを保存するため、NASを初期化する前にコンテンツをエクスポートしないと、すべて失ってしまいます。私はそれで痛い目を見ました!しかし、「通常」のフォルダーはすべて /share の下にあります。
こんにちは @xjimenez
参考情報です:
たとえば、コンテナアプリケーションに /root/apple というフォルダがあり、これをNAS上の指定ディレクトリに「リンク」したい場合、File Stationの Container/folder-apple フォルダを使用するとします。
方法は2つあります。1つ目は、GUIでコンテナを作成する際に「詳細設定」と「ストレージ」に進み、「ホストとのマッピング」を選択する方法です。1つ目のフィールドでNAS上の /Container/folder-apple フォルダをホストとして選択し、2つ目のフィールドにコンテナ内の場所 /root/apple を手動で入力します。
2つ目の方法は、YAMLファイルを使って手動で作成する場合で、-volumes フィールドに /share/Container/folder-apple:/root/apple というマウントポイントを作成します。
先頭の /share は固定で、/Container はFile Stationで表示される共有フォルダ、/folder-apple はそのサブフォルダです。コロンの後の :/root/apple はコンテナ内の場所を表します。
設定が完了すると、コンテナの /root/apple はFile Station上の Container/folder-apple とリンクされます。コンテナ側でファイルを作成しても、Container/folder-apple にファイルをアップロードしても、どちらのプラットフォームでもファイルを確認できます。