Docker matrix build generator
Go to file
2019-12-22 19:49:51 +01:00
LICENSE Initial commit 2019-12-22 16:24:05 +01:00
README.md Update README.md 2019-12-22 19:49:51 +01:00

tumbo

Docker matrix build generator

variables:
    my_var:
        - a
        - b
        - c
    some_other:
        - 0.1.0
        - 0.1.2

context: ./build
recipe: './Dockerfile.j2'
tag: "my-tag:{{ my_var }}-{{ some_other }}"

parallel: no
# no
# yes : uses all threads available
# n : number of threads to use
# default: yes

push: yes
run: yes
registry:
    username: my_user
    password: my_pass
    host: my_host

Config Reference

Variables

The variables to build the matrix. Simply specify an array for each variable. They will be available in the template.

variables:
    my_var:
        - a
        - b
        - c
    some_other:
        - 0.1.0
        - 0.1.2

Recipe

The template to compile the dockerfile. Can be a template itself if you don't want to write everything in the same file.

Simple
recipe: './Dockerfile.j2'
Template
variables:
    my_var:
        - a
        - b

recipe: './{{ my_var }}.j2'

Assuming my_var hast the values a and b it will render to ./a.j2 and ./b.j2 accordingly.

Context (Optional)

Default: directory of the config file.

Specify the directory where the templates and the dockerfiles will be built. Supports both absolute and relative paths.

context: ./build

Tag (Optional)

Default: Creates a tag that includes all variables. In most cases it will not be necessary to specify, but can be usefull if your are pushing images. Supports templating of course.

Important: The tag should be unique across the matrix, otherwise you will overwrite other tags. So always include all the variables you specified inside the image name

variables:
    var1:
        - a
        - b
    var2:
        - a
        - b
    var3:
        - a
        - b

tag: 'my-image-name:{{ var3 }}-{{ var1 }}-{{ var2 }}'