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 で変更:
genvid.toolbox.SDK.get_images_config()
との競合を回避するため、get_images_config
から返されます。basedir
パラメータを追加。
- 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 で追加.
- class docker.DockerTool