Skip to content

anduintransaction/doriath

Repository files navigation

Simple automated build graph for docker

Installation

Check https://github.com/anduintransaction/doriath/releases

How to run

  • Create a doriath.yml file in your project
  • doriath dryrun to check for build steps and possible errors
  • doriath build to build all docker images locally
  • doriath push to push all images

Sample configuration file:

root_dir: .
pull:
  - "ubuntu:16.04"
  - "centos:7"
build:
  - name: "ubuntu"
    tag: "16.04"
    from: "provided"
  - name: "human/aragorn"
    from: "./human/aragorn"
    tag: "1.2.0"
    depend: "elf/elrond"
  - name: "elf/arwen"
    from: "./elf/arwen"
    tag: "3.1.4"
    depend: "elf/elrond"
  - name: "wizard/gandalf"
    from: "./wizard/gandalf"
    tag: "0.5.2"
  - name: "elf/elrond"
    from: "./elf/elrond"
    tag: "2.1.0"
    depend: "ubuntu"
    pre_build: "./init-elrond.sh" // Run this script file before building image
    post_build: "./finalize-elrond.sh" // Run this script file after building image
    force_build: true // Always build and push this image, skip checking for existance from registry
    push_latest: true // also push this tag as "latest"
credentials:
  - name: dockerhub
    username: "$YOUR_USERNAME" // Use environment variable
    password: "${YOUR_PASSWORD}" // Here too
  - name: gcr.io
    registry: "https://gcr.io/v2/"
    username: "_json_key"
    password_file: "credential.json" // Use password from a file content

Using variable for configuration file

The config file supports go-template syntax. For example:

root_dir: .
build:
  - name: "my-image"
    tag: "{{.myImageTag}}"
    from: "./my-image"

Then you can pass the value of myImageTag from command line:

doriath build --variable myImageTag=2.1

Or using variable file:

doriath build --variableFile varFile

Sample varFile:

myImageTag=2.1