Python Scripting

The cog directory and helix_cog_wrapper.py files within this repository https://github.com/helixml/base-images/ are designed to streamline specific tasks using Python scripting. This outline provides developers with an understanding of the codebase and its functionality.

helix_cog_wrapper.py

This Python script serves as a wrapper to execute cog components based on specific arguments and settings.

Usage:

  • Command Line Arguments:

    • -m, --mode: Specify the mode of operation. Supported modes:

      • build: Generate a new base image based on configuration.
      • clean: Clean up temporary files and build artifacts.
      • push: Push a built image to a registry.
      • tag: Tag a built image.
      • delete: Delete a specific image from a registry.
      • pull: Pull a specific image from a registry.
      • list: List available images in a registry.
    • -t, --target: Specify the target image name or tag.

    • -r, --registry: Specify the registry to use for image operations.

    • -u, --user: Specify the username for the registry.

    • -p, --password: Specify the password for the registry.

    • -b, --branch: Specify the branch for the base image.

    • -c, --config: Specify the path to a custom configuration file.

  • Example:

    python helix_cog_wrapper.py -m build -t my-base-image -r docker.io -u my-username -p my-password 
              

This command builds a new base image named “my-base-image” using the specified registry, username, and password.

cog Directory

The cog directory contains various Python scripts and configurations.

Key Components:

  • cog_build.py: Handles the base image build process.
  • cog_clean.py: Responsible for cleaning up temporary files and artifacts.
  • cog_push.py: Manages image pushing to a registry.
  • cog_tag.py: Tags a built image.
  • cog_delete.py: Handles image deletion from a registry.
  • cog_pull.py: Downloads an image from a registry.
  • cog_list.py: Lists available images in a registry.

Example:

# cog_build.py
          import docker
          
          def build_image(image_name, context_path, dockerfile):
            # Code to build the image using docker.Client()
            # ...
          
            # Return the built image object
          

This example demonstrates a simplified version of cog_build.py, showcasing how it uses the docker library to build a base image.