latch_cli.docker_utils package#

Module contents#

class latch_cli.docker_utils.DockerCmdBlockOrder(value)[source]#

Bases: str, enum.Enum

Put a command block before or after the primary COPY command.

precopy = '1'#
postcopy = '2'#
class latch_cli.docker_utils.DockerCmdBlock(comment: str, commands: List[str], order: latch_cli.docker_utils.DockerCmdBlockOrder)[source]#

Bases: object

comment: str#
commands: List[str]#
order: latch_cli.docker_utils.DockerCmdBlockOrder#
write_block(f: _io.TextIOWrapper)[source]#
latch_cli.docker_utils.get_prologue(config: latch_cli.workflow_config.LatchWorkflowConfig) List[str][source]#
latch_cli.docker_utils.get_epilogue() List[str][source]#
latch_cli.docker_utils.infer_commands(pkg_root: pathlib.Path) List[latch_cli.docker_utils.DockerCmdBlock][source]#
latch_cli.docker_utils.generate_dockerfile(pkg_root: pathlib.Path, outfile: pathlib.Path) None[source]#

Generate a best effort Dockerfile from files in the workflow directory.

Parameters
  • pkg_root – A path to a workflow directory.

  • outfile – The path to write the generated Dockerfile.

Example

>>> generate_dockerfile(Path("test-workflow"), Path("test-workflow/Dockerfile"))
    # The resulting file structure will look like
    #   test-workflow
    #   ├── Dockerfile
    #   └── ...