docs/v3/api-ref/python/prefect-utilities-dockerutils.mdx
prefect.utilities.dockerutilspython_version_minor <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L36" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>python_version_minor() -> str
python_version_micro <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L40" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>python_version_micro() -> str
get_prefect_image_name <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L44" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>get_prefect_image_name(prefect_version: Optional[str] = None, python_version: Optional[str] = None, flavor: Optional[str] = None) -> str
Get the Prefect image name matching the current Prefect and Python versions.
Args:
prefect_version: An optional override for the Prefect version.python_version: An optional override for the Python version; must be at the
minor level e.g. '3.9'.flavor: An optional alternative image flavor to build, like 'conda'silence_docker_warnings <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L87" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>silence_docker_warnings() -> Generator[None, None, None]
docker_client <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L115" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>docker_client() -> Generator['DockerClient', None, None]
Get the environmentally-configured Docker client
build_image <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L164" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>build_image(context: Path, dockerfile: str = 'Dockerfile', tag: Optional[str] = None, pull: bool = False, platform: Optional[str] = None, stream_progress_to: Optional[TextIO] = None, **kwargs: Any) -> str
Builds a Docker image, returning the image ID
Args:
context: the root directory for the Docker build contextdockerfile: the path to the Dockerfile, relative to the contexttag: the tag to give this imagepull: True to pull the base image during the buildstream_progress_to: an optional stream (like sys.stdout, or an io.TextIO) that
will collect the build output as it is reported by DockerReturns:
push_image <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L475" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>push_image(image_id: str, registry_url: str, name: str, tag: Optional[str] = None, stream_progress_to: Optional[TextIO] = None) -> str
Pushes a local image to a Docker registry, returning the registry-qualified tag for that image
This assumes that the environment's Docker daemon is already authenticated to the given registry, and currently makes no attempt to authenticate.
Args:
image_id: a Docker image IDregistry_url: the URL of a Docker registryname: the name of this imagetag: the tag to give this image (defaults to a short representation of
the image's ID)stream_progress_to: an optional stream (like sys.stdout, or an io.TextIO) that
will collect the build output as it is reported by DockerReturns:
to_run_command <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L532" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>to_run_command(command: list[str]) -> str
Convert a process-style list of command arguments to a single Dockerfile RUN instruction.
parse_image_tag <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L556" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>parse_image_tag(name: str) -> tuple[str, Optional[str]]
Parse Docker Image String
Args:
name: Name of Docker Imagesplit_repository_path <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L604" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>split_repository_path(repository_path: str) -> tuple[Optional[str], str]
Splits a Docker repository path into its namespace and repository components.
Args:
repository_path: The Docker repository path to split.Returns:
format_outlier_version_name <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L635" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>format_outlier_version_name(version: str) -> str
Formats outlier docker version names to pass packaging.version.parse validation
Args:
version: raw docker version valueReturns:
packaging.version.parse validationgenerate_default_dockerfile <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L653" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>generate_default_dockerfile(context: Optional[Path] = None)
Generates a default Dockerfile used for deploying flows. The Dockerfile is written to a temporary file and yielded. The temporary file is removed after the context manager exits.
Args:
- context: The context to use for the Dockerfile. Defaults to
the current working directory.BuildError <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L132" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>Raised when a Docker build fails
ImageBuilder <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L269" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>An interface for preparing Docker build contexts and building images
Methods:
add_line <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L328" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>add_line(self, line: str) -> None
Add a line to this image's Dockerfile
add_lines <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L332" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>add_lines(self, lines: Iterable[str]) -> None
Add lines to this image's Dockerfile
assert_has_file <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L461" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>assert_has_file(self, source: Path, container_path: PurePosixPath) -> None
Asserts that the given file or directory will be copied into the container at the given path
assert_has_line <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L402" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>assert_has_line(self, line: str) -> None
Asserts that the given line is in the Dockerfile
assert_line_absent <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L412" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>assert_line_absent(self, line: str) -> None
Asserts that the given line is absent from the Dockerfile
assert_line_after <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L457" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>assert_line_after(self, second: str, first: str) -> None
Asserts that the second line appears after the first line
assert_line_before <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L432" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>assert_line_before(self, first: str, second: str) -> None
Asserts that the first line appears before the second line
build <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L373" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>build(self, pull: bool = False, stream_progress_to: Optional[TextIO] = None) -> str
Build the Docker image from the current state of the ImageBuilder
Args:
pull: True to pull the base image during the buildstream_progress_to: an optional stream (like sys.stdout, or an io.TextIO)
that will collect the build output as it is reported by DockerReturns:
copy <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L336" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>copy(self, source: Union[str, Path], destination: Union[str, PurePosixPath]) -> None
Copy a file to this image
write_text <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L362" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>write_text(self, text: str, destination: Union[str, PurePosixPath]) -> None
PushError <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/utilities/dockerutils.py#L470" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>Raised when a Docker image push fails