Development Report for June 5, 2017

New feature: Long running session

Similarly to last week, the PR for adding long-running session between daemon and cli is waiting for reviews. It is blocking many new features like the token signing, not pulling unnecessary context files, exposing sources outside working directory, etc. Maintainers are encouraged to give this one a review so it can be included in v17.07 release.

Quality: Dependency interface switch

Work continues on making the builder dependency interface more stable.

PRs currently in review as part of this effort:

This PR is the core of the update that removes the need to track active containers and instead of lets builder hold references to layers while it's running.

Related to this, @simonferquel opened a WIP PR that introduces typed Dockerfile parsing. This enables making decisions about dependencies between build stages and reusing Dockerfile parsing as a buildkit frontend.

Buildkit

Some initial proof of concept code for buildkit has been pushed to https://github.com/tonistiigi/buildkit_poc . It's in a very early exploratory stage. Current codebase includes libraries for getting concurrency safe references to containerd snapshots using a centralized cache management instance. There is a sample source implementation for pulling images to these snapshots and executing jobs with runc on top of them. There is also some utility code for concurrent execution and progress stream handling. More info should follow in next weeks, including hopefully opening up an official repo. If you have questions or want to help, stop by the issues section of that repo or the proposal in moby/moby.

Proposals discussed in maintainers meeting

Reminder from last week: New builder proposals were discussed in maintainers meeting. The decision was to give two more weeks for anyone to post feedback to IMPORT/EXPORT commands and RUN --mount and accept them for development if nothing significant comes up. It is the last week to post your feedback on these proposals or the comments in them. You can also volunteer to implement them.

A new issue about build secrets has not got much traction. If you want this feature to become a reality, please make yourself heard.

Proposals for new Dockerfile features that need design feedback:

Add IMPORT/EXPORT commands to Dockerfile

Add DOCKEROS/DOCKERARCH default ARG to Dockerfile

Add support for RUN --mount

DAG image builder

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

Fix canceling builder on chunked requests

Fix parser directive refactoring

Builder features currently in code-review:

Warn/deprecate continuing on empty lines in Dockerfile

Fix behavior of absolute paths in .dockerignore