Skip to content
a task for building Docker images without a Docker daemon
Branch: master
Clone or download
vito Merge pull request #26 from databus23/rootfs-output
Add dedicated output for unpacking the rootfs
Latest commit 17e51d3 May 18, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Dockerfile point to jess/img May 15, 2019
LICENSE.md init Oct 1, 2018
NOTICE.md init Oct 1, 2018
README.md Add dedicated output for unpacking the rootf May 17, 2019
build Add dedicated output for unpacking the rootf May 17, 2019
example.yml rename docker repo to concourse/builder-task Mar 27, 2019

README.md

builder

A Concourse task to builds Docker images without pushing and without spinning up a Docker daemon. Currently uses img for the building and saving.

This repository describes an image which should be used to run a task similar to example.yml.

A stretch goal of this is to support running without privileged: true, though it currently still requires it.

task config

Concourse doesn't yet have easily distributable task configs (there's an open call for an RFC), so we'll just have to document what you need to set here.

image

The task's image should refer to concourse/builder-task. You can either configure this via image_resource or pull it in as part of your pipeline.

params

The following params are required:

  • $REPOSITORY: the repository to name the image, e.g. concourse/builder-task.

The following are optional:

  • $TAG (default latest): the tag to apply to the image.

  • $TAG_FILE (default empty): the tag should be a path to a file containing the name of the tag.

  • $CONTEXT (default .): the path to the directory to build. This should refer to one of the inputs.

  • $DOCKERFILE (default $CONTEXT/Dockerfile): the path to the Dockerfile to build.

  • $BUILD_ARG_* (default empty): Params that start with BUILD_ARG_ will be translated to --build-arg options. For example BUILD_ARG_foo=bar, will become --build-arg foo=bar

  • $BUILD_ARGS_FILE (default empty): path to a file containing Docker build-time variables.

    Example file contents:

    EMAIL=me@yopmail.com
    HOW_MANY_THINGS=1
    DO_THING=false
    
  • $TARGET (default empty): the target build stage to build.

  • $TARGET_FILE (default empty): the path to a file containing the name of the target build stage to build.

inputs

There are no required inputs - your task should just list each artifact it needs as an input.

outputs

Your task may configure an output called image. The saved image tarball will be written to image.tar within the output. This tarball can be passed along to docker load, or uploaded to a registry using the Registry Image resource.

Your task may configure an output called rootfs. A metadata.json and rootfs subfolder will be created in the output. This can be used to start the image in a subsequent task without uploading it to a registry using the "image" task step option.

caches

Build caching can be enabled by configuring a cache named cache on the task.

run

Your task should execute the build script.

example

This repo contains an example.yml, which builds the image for the builder itself:

fly -t dev execute -c example.yml -o image=. -p
docker load -i image.tar
You can’t perform that action at this time.