2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

singularity-pythonを使ってみた。

Last updated at Posted at 2018-03-10

singularity-pythonは、Singularityコンテナを操作するためのPythonモジュールとコマンドラインツールです。PythonからSingularityを操作してみたかったので、singularity-pythonを使って色々試してみました。また何かやってみたら追記していきます。

追記:singularity-pythonはdeprecatedになるみたいで、今開発中のsingularity-cliが後継になるらしいです。

インストール

pip3 install singularity

python3推奨です。

環境変数

SINGULARITY_PULLFOLDER : Singularity Hubなどから落としてきたコンテナイメージファイルが保存される場所を設定できます。デフォルトだとカレントディレクトリに保存されます。

pythonでやるなら、こんな感じでしょうか。

import os

singularity_env = os.path.expanduser("~/.singularity/images/")
os.environ["SINGULARITY_PULLFOLDER"] = singularity_env

これで~/.singularity/images/の中にコンテナイメージファイルが保存されるようになります。

pull

Singularity Hubなどからコンテナイメージを落とします。

from singularity.cli import Singularity

S = Singularity()
container_id = "shub://hogehoge/hogehoge"
image_name = S.pull(container_id)

SINGULARITY_PULLFOLDERを設定しておくと、指定したディレクトリの中に保存されます。
S.pull(container_id,image_name="hoge.simg")のようにすると保存されるコンテナイメージファイルの名前を変更する事ができます。

run

コンテナの作成時のレシピファイルに書かれている%runscriptを実行します。

result = S.run(image_name, args="hoge")
print(result)

execute

コンテナ内の環境に存在するコマンドを実行します。

result = S.execute(image_name, "ls")
print(result)
2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?