Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
3.9 KiB
Development Report for June 26, 2017
BuildKit
New development repo is open at https://github.com/moby/buildkit
The readme file provides examples how to get started. You can see an example of building BuildKit with BuildKit.
There are lots of new issues opened as well to track the missing functionality. You are welcomed to help on any of them or discuss the design there.
Last week most of the work was done on improving the llb
client library for more complicated use cases and providing traces and interactive progress of executed build jobs.
The llb
client package is a go library that helps you to generate the build definition graph. It uses chained methods to make it easy to describe what steps need to be running. Mounts can be added to the execution steps for defining multiple inputs or outputs. To prepare the graph, you just have to call Marshal()
on a leaf node that will generate the protobuf definition for everything required to build that node.
Typed Dockerfile parsing
This PR that enables parsing Dockerfiles into typed structures so they can be preprocessed to eliminate unnecessary build stages and reused with different kinds of dispatchers(eg. BuildKit).
The PR had some review and updates in last week. Should be ready to code review soon.
Merged: Long running session & incremental file sending
Incremental context sending PR was merged and is expected to land in v17.07
.
This feature experimental feature lets you skip sending the build context to the daemon on repeated builder invocations during development. Currently, this feature requires a CLI flag --stream=true
. If this flag is used, one first builder invocation full build context is sent to the daemon. On a second attempt, only the changed files are transferred.
Previous build context is saved in the build cache, and you can see how much space it takes form docker system df
. Build cache will be automatically garbage collected and can also be manually cleared with docker prune
.
Quality: Dependency interface switch
Move file copying from the daemon to the builder PR was merged.
Proposals for new Dockerfile features that need design feedback:
Add IMPORT/EXPORT commands to Dockerfile
Add DOCKEROS/DOCKERARCH
default ARG to Dockerfile
Option to export the hash of the build context (new)
Allow --cache-from=* (new)
Provide advanced .dockeringore use-cases 2
If you are interested in implementing any of them, leave a comment on the specific issues.
Other builder PRs merged last week
Warn/deprecate continuing on empty lines in Dockerfile
Fix behavior of absolute paths in .dockerignore
fix copy —from conflict with force pull
Builder features currently in code-review:
Fix handling of remote "git@" notation
builder: Emit a BuildResult after squashing.
Fix shallow git clone in docker-build
Backlog
Build secrets has not got much traction. If you want this feature to become a reality, please make yourself heard.