genvid.toolbox.DockerTool

class genvid.toolbox.DockerTool

ベースクラス: genvid.toolbox.network.NetworkTool

Docker イメージアーカイブの操作を処理します。

RE_IMAGE_IMAGEID = re.compile('(?P<image>.+)_(?P<version>[^_]*)_(?P<imageid>[0-9a-f]{12})\\.(?P<archfmt>[^.]*)')

イメージのファイル名を <image>_<version>_<id>.<archfmt> に分解する

RE_SUCCESSFUL_BUILD = re.compile('(Successfully built |sha256:)([0-9a-f]+)')

成功した場合、 docker ビルドメッセージと一致する正規表現。

RE_DIRTY_VERSION = re.compile('^(latest|dev|.*[.+]dirty|\\d+\\.\\d+\\.\\d+\\.0)$')

イメージバージョンがダーティかどうかを決定する正規表現。

ダーティバージョンとは、ビルド番号が 0 のもの。下位互換のため、以下に一致するバージョンについても一致。

  • latest.
  • dev.
  • 末尾が .dirty のもの。

バージョン 1.20.0 で変更: 新しいリリースモデルに導入されたダーティビルドの規定に従って、正規表現を更新。

IMAGE_TEMPLATE = '{image}_{version}_{imageid}.{archfmt}'

イメージのファイル名のテンプレート。 RE_IMAGE_IMAGEID と一致する必要があります。

DOCKER_MACHINE_NAME = None

Docker マシンに名前を与える、 DOCKER_MACHINE_NAME のミラー。

GENVID_DOCKER_API_TIMEOUT = None

docker API のタイムアウトを定義していた GENVID_DOCKER_API_TIMEOUT のミラーです。 最初に docker を呼び出す前に設定する必要があります。

バージョン 1.34.0 で追加.

docker

docker クライアントを取得する。

最初の呼び出しで、遅れて初期化される。

set_docker_env(timeout=120)

Docker マシンを使用して、Docker 環境を構築する。

バージョン 1.20.1 で変更: DOCKER_MACHINE_NAME のデフォルトが default でなくなりました。設定されていない場合、環境は変更されません。

build_docker(tag, path=None, rm=True, forcerm=True, **kwargs)

Docker イメージを作成する。

イメージビルドを返します。

static version_to_imagetag(image, version)

Docker のタグを返します。

get_images_config_from_folder(baseurl, basedir: typing.Union[pathlib.Path, str, NoneType] = None)

basedir 配下のすべてのイメージの設定を返します。

パラメータ:
  • baseurl – すべてのイメージの baseurl。
  • basedir – イメージが見つかったフォルダ。
    バージョン 1.20.0 で変更:
  • genvid.toolbox.SDK.get_images_config() との競合を回避するため、 get_images_config から返されます。

  • basedir パラメータを追加。

update_image(image: str, version: str = 'latest', clean: bool = False, compress: bool = False, basedir: typing.Union[pathlib.Path, str, NoneType] = None)

指定ディレクトリの docker イメージを更新する。

具体的には、このメソッドは docker に通知している最新の利用可能バージョンを比較し、 basedir で使用可能かどうかを比較します。イメージ ID と一致する要求されたバージョンの docker イメージが basedir に存在しない場合、最新版のイメージを docker クライアントを使用して取得します。

パラメータ:
  • image – イメージ名。
  • version – イメージのバージョン。
  • cleanTrue の場合、名前が一致し、バージョンやイメージ ID の異なるイメージは削除されます。
  • compressTrue の場合、docker イメージは ZIP ファイルに圧縮されます。イメージの更新の有無にかかわらず、この処理は適用されます。
  • basedir – イメージが保存されているディレクトリ。デフォルトは ARTIFACTS_DIR
例外:

RuntimeErrorbasedir に、docker イメージでも ZIP アーカイブでもない、一致するイメージ名を見つけた場合。

:raises ValueError : image:tag のイメージリストが空の場合。

    バージョン 1.12.0 で変更:
  • compress パラメータを追加。

    バージョン 1.20.0 で変更:
  • basedir パラメータを追加。

    バージョン 1.21.0 で変更:
  • 解説書の拡充。

  • リストのエラーを修正。

  • メソッドの複雑さを軽減。

get_image_path(image, version, imageid, archfmt='docker', basedir: typing.Union[pathlib.Path, str, NoneType] = None) → str

指定イメージのパスを返します。

パラメータ:basedir – イメージのベースパス。デフォルトは ARTIFACTS_DIR

バージョン 1.20.0 で変更: basedir パラメータを追加。

get_image_filename(image, version, imageid, archfmt='docker') → str

指定イメージのファイル名を返します。

バージョン 1.20.0 で追加.

get_images(basedir: typing.Union[pathlib.Path, str, NoneType] = None)

RE_IMAGE_IMAGEID に一致する形式のイメージのリストを取得する。

パラメータ:basedir – イメージを検索するディレクトリ。デフォルトは ARTIFACTS_DIR
戻り値:イメージ、バージョン、イメージ ID、archfmt を含むタプルリストを生成します。

バージョン 1.20.0: で変更: パラメータ basedir を追加。

get_latest_images(basedir: typing.Union[pathlib.Path, str, NoneType] = None)

basedir 内のすべての最新イメージの辞書を返します。

パラメータ:basedir – イメージを検索するディレクトリ。デフォルトは ARTIFACTS_DIR
戻り値:イメージ名で特定されたバージョン、イメージ ID、archfmt のタプルの辞書。

バージョン 1.20.0: で変更: パラメータ basedir を追加。

class docker.DockerTool

genvid.toolbox.DockerTool の実装