genvid.toolbox.DockerTool

class genvid.toolbox.DockerTool

ベースクラス: 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

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

GENVID_DOCKER_API_TIMEOUT

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

バージョン 1.34.0 で追加.

property 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: Optional[Union[Path, str]] = None)

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

パラメータ
  • baseurl -- すべてのイメージの baseurl。

  • basedir -- イメージが見つかったフォルダ。

バージョン 1.20.0 で変更:

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

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

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

パラメータ
  • image -- イメージ名。

  • version -- イメージのバージョン。

  • clean -- True の場合、名前が一致し、バージョンやイメージ ID の異なるイメージは削除されます。

  • compress -- True の場合、docker イメージは ZIP ファイルに圧縮されます。イメージの更新の有無にかかわらず、この処理は適用されます。

  • basedir -- 画像を保存するディレクトリを指定します。デフォルトは GENVID_SDK_FOLDER/images です。

例外

RuntimeError -- basedir に、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: Optional[Union[Path, str]] = None) str

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

パラメータ

basedir -- 画像のベースパスを指定します。デフォルトは GENVID_SDK_FOLDER/images です。

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

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

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

バージョン 1.20.0 で追加.

get_images(basedir: Optional[Union[Path, str]] = None)

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

パラメータ

basedir -- 画像を格納するディレクトリ。デフォルトは GENVID_SDK_FOLDER/images です。

戻り値

イメージ、バージョン、イメージ ID、archfmt を含むタプルリストを生成します。

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

get_latest_images(basedir: Optional[Union[Path, str]] = None)

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

パラメータ

basedir -- 画像を格納するディレクトリ。デフォルトは GENVID_SDK_FOLDER/images です。

戻り値

イメージ名で特定されたバージョン、イメージ ID、archfmt のタプルの辞書。

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

class docker.DockerTool

genvid.toolbox.DockerTool の実装