ansible-role-tripleo-modify.../README.md

2.1 KiB

TripleO Modify Image

A role to allow modification to container images built for the TripleO project.

Role Variables

Variables used for modifying an image

Name Default Value Description
source_image None Mandatory fully qualified reference to the source
image to be modified. The supplied Dockerfile will be copied and modified to
make the FROM directive match this variable.
modify_dir_path None Mandatory path to the directory containing the
Dockerfile to modify the image
modified_append_tag None String to be appended after the tag to
indicate this is a modified version of the source image. Defaults to the output
of the command date +-modified-%Y%m%d%H%M%S
modified_image {{source_image}} If set, the modified image will be
tagged with this reference. If the purpose of the image is not changing, it may
be enough to rely on modified_append_tag to identify that this is a modified
version of the source image. modified_append_tag will still be appended to
this reference.

Requirements

  • ansible >= 2.4
  • python >= 2.6
  • docker-py >= 1.7.0
  • Docker API >= 1.20

Dependencies

None

Example Playbooks

The following playbook will produce a modified image tagged with latest-modified-<timestamp>

- hosts: localhost
  tasks:
  - name: include tripleo-modify-image
    import_role:
      name: tripleo-modify-image
    vars:
      source_image: docker.io/tripleomaster/centos-binary-nova-api:latest
      modify_dir_path: /path/to/example_modify_dir

The directory example_modify_dir contains the Dockerfile which will perform the modification, for example:

# This will be replaced in the file Dockerfile.modified
FROM centos-binary-nova-api

# switch to root to install packages
USER root

# install packages
RUN curl "https://bootstrap.pypa.io/get-pip.py" -o "/tmp/get-pip.py"
RUN python /tmp/get-pip.py

# switch the container back to the default user
USER nova

License

Apache 2.0