Skip to main content

Docker related utilities.

Latest release 20231202: Initial PyPI release.

Function default_docker_command()

pylint: disable=unnecessary-lambda-assignment

Function default_docker_compose_command()

pylint: disable=unnecessary-lambda-assignment

Function default_docker_compose_config()

pylint: disable=unnecessary-lambda-assignment

Function docker(*dk_argv, exe=None, doit=True, quiet=True) -> subprocess.CompletedProcess

Invoke docker with dk_argv.

Function docker_compose(*dc_argv, exe=None, config=None, doit=True, quiet=True) -> subprocess.CompletedProcess

Invoke docker-compose with dc_argv.

Class DockerRun

A DockerRun specifies how to prepare docker to execute a command.

This is a generic wrapper for invoking a docker image and internal executable to process data from the host system, essentially a flexible and cleaned up version of the wrappers used to invoke things like the linuxserver:* utility docker images.

Input paths for the executable will be presented in a read only directory, by default `/input' inside the container.

An output directory (default '.', the current durectory) will be mounted read/write inside the container, by default /output inside the container.

Unlike a lot of docker setups, the default mode runs as the invoking user's UID/GID inside the container and expects the s6-setuidgid utility to be present in the image.

See the ffmpeg_docker function from cs.ffmpegutils for an example invocation of this class.

Class DockerUtilCommand(cs.cmdutils.BaseCommand)

A command line mode for working with Docker et al.

Command line usage:

Usage: dockerutil [options...] [@container] subcommand...
    -f docker-compose.yml
      Specify ['docker', 'compose'] YAML file.
      Default: 'docker-compose.yml', overridden by $DK_COMPOSE_YML
    @container  Specify a target container.

  Subcommands:
    help [-l] [subcommand-names...]
      Print the full help for the named subcommands,
      or for all subcommands if no names are specified.
      -l  Long help even if no subcommand-names provided.
    ps
      Show the running docker containers.
    run [options] image [command] [arg...]
      Invoke command in an instance of image.
      A read only directory for input data will be present as /input.
      A read/write directory for output data will be present at /output.
      The command's working directory will be /output.
      -i inputpath
          Mount inputpath as /input/basename(inputpath)
      -I inputpath dockerpath
          Mount inputpath as /input/dockerpath
      --root
          Do not switch to the current effective uid:gid inside
          the container.
      -U  Update the local copy of image before running.
      Other options are passed to "docker run".
    shell
      Run a command prompt via cmd.Cmd using this command's subcommands.

Class DockerUtilCommandOptions(cs.cmdutils.BaseCommandOptions)

Command line options for DockerUtilCommand.

Function main(argv=None, **run_kw)

Invoke the DockerUtilCommand with argv.

Function mount_escape(*args) -> str

Escape the strings in args for us in the docker run --mount option.

Apparently the arguments to docker run --mount are in fact a CSV data line. (Of course you need to find this allusion in the bug tracker, heaven forfend that the docs actually detail this kind of thing.)

Rather that try to enumerate what needs escaping, here we use the csv module to escape using the default "excel" dialect.

Release Log

Release 20231202: Initial PyPI release.

Release files for cs-dockerutils 20231202

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cs-dockerutils 20231202
File Size Uploaded
cs.dockerutils-20231202.tar.gz 7.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cs-dockerutils 20231202
File Interpreter ABI Platform
cs.dockerutils-20231202-py3-none-any.whl Python 3 none any Details

Total release size: 13.8 kB

Release files / cs.dockerutils-20231202.tar.gz

Download URL cs.dockerutils-20231202.tar.gz
Size 7.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9ccb7a35da6b4587954f0d1289739940712b47a706ee28361ec97d64896988f3
BLAKE2b-256 checksum
How to use checksums
9f7c5a463df387cd614635ba761d77d22aaeb1dfb747bf7cd15895f6b4c6043e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.6

Release files / cs.dockerutils-20231202-py3-none-any.whl

Download URL cs.dockerutils-20231202-py3-none-any.whl
Size 6.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7b62f52a29ddfca387b0d8d31e953771e38e67db2f844126a6deaf1dbd5befc8
BLAKE2b-256 checksum
How to use checksums
5ddd3c4306aa37ec81c8333bc94ebf78f00da9f975b272968341df219dc7555d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.6

Release history Release notifications | RSS feed

This release

20231202 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page