LoginSignup
0
0

More than 1 year has passed since last update.

Modalの共有ボリュームのパスについて

Posted at

はじめに

Modalを使っているときに共有ボリュームに入れたデータをコード上から利用しようとしたときに行き詰ったのでそのリファレンス
以下、パスの表現はLinux上で表現するものとする

Secretsについて

起動前の環境変数等を設定できるやつ
設定しておくと、ローカルとリモートでパスの違いなどをほぞできる (今回の記事のやつ)

SharedVolume について

コード上で設定する下記のものについて、

SHARED_VOLUME_NAME = 'sharedvolumename'
CACHE_PATH = '/cache'
shared_volumes={CACHE_PATH: modal.SharedVolume().persist(SHARED_VOLUME_NAME)}

ここでこのように設定した場合は、CACHE_PATH がルートディレクトリに設定されるため、相対パスを入力した場合はこれが最初につくようになる。そのため、

modal volume put [shared-volume-name] [localPath] [remote path]

でファイルを送信する場合、remote path に相対パスを入れると、/cache/path...になることに注意
また、リモートパスでパスの区切りは'/'で統一する。しない場合はパスが名前としてすべて同じ場所に保存される。

最重要

加えて、移動できたかどうかは以下のコマンドで確認することができるが、

modal volume ls [shared-volume-name] '/'

このように入力した場合は、一見Linuxのルートから表示していると思われるが、実際はCACHE_PATHで設定したパスをルートとして表示している。

プログラム内からファイルにアクセス

プログラム内でファイルに絶対パスでアクセスする場合は、Linuxルートディレクトリから表記する必要がある。
そのため、最重要のところで指定したパスでアクセスしようとすると、ファイルが見つからない。
実際にアクセスするためには、CACHE_PATH + ファイルの場所となる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0