Docker Utils with Python


License
MIT
Install
pip install pyocker==0.2.7

Documentation

Pyocker

PyPI version Build Status Dependency Status Code Climate

Description

  • Docker images have Base Images, and a Base Image also has another Base image.
  • You may want to re-build ImageA before building ImageB which will be built based on ImageA.

Pyocker enables static definition of Dockerfile dependencies and selective build/push of docker images.

TODO

  • Enable use of Dockerfiles in user-selected directories for each image
  • Integration with dockerfile_composer
  • Registry authentication
  • Check if actual dependency described in Dockerfiles match dependency definitions
  • Add comments
  • Loggin into files

Requirements

  • Docker

Installation

pip install pyocker

Usage

Build

pyocker build --file docker-dependency.yml            # Basic
pyocker build --file docker-dependency.yml --dry-run  # Dry-Run

Options

Usage: pyocker build [OPTIONS]

Options:
  --file TEXT          Path to config file [default="docker-dependency.yml"]
  --verbose / --quiet  Make lots of noise or not [default=verbose]
  --dry-run            Dry Run
  -h, --help           Show this message and exit.

Config

# Built-in variables:
# * $date - current date in format `yyyy.mm.dd`
---
registry:                 # name of public|private registry
images:                   # Required
  -
    name: fluentd         # Required
    tags:                 # Tags to build with
      - latest
      - production
      - development
    use_cache: yes        # Disable `--no-cache` option  [default: yes]
    build: no
    push: no
  -
    name: my-image
    tags:
      - $date-dev         # Using a built-in variable
    use_cache: no
    build: yes
    push: yes
    dependencies:         # Images required by `my-image`
      -
        name: base-image1
        tags:
          - latest
        use_cache: yes
        build: yes
        push: no
      -
        name: base-image2
        tags:
          - latest
        use_cache: yes
        build: yes
        push: no

Compose

Upcoming.