Skip to content

Commit b60c581

Browse files
committed
Add builder dev report for 2017-07-17
Signed-off-by: Tonis Tiigi <[email protected]>
1 parent fa7db52 commit b60c581

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

reports/builder/2017-07-17.md

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Development Report for July 17, 2017
2+
3+
4+
### BuildKit
5+
6+
[Repo](https://github.com/moby/buildkit)
7+
[Proposal](https://github.com/moby/moby/issues/32925)
8+
9+
Following features were added last week:
10+
11+
#### Git source
12+
13+
Source code from git repositories can now be accessed directly, similarly for images can be accessed, without the need to execute `git clone`. This has many performance and caching advantages. It accesses the remote repository using shallow fetches to only pull the required data and a uses a shared bare repository for intermediate cache between build invocations. The instruction cache for the git source is based on a commit hash and not string arguments. This means that you can always be sure that you are building the correct source and that you never build the same source twice.
14+
15+
#### Containerd exporter
16+
17+
Exporters are used for getting build artifacts out of buildkit. The first exporter that was implemented allows exposing the image to containerd so it can be run and pushed with `ctr` tool. `buildctl` has `--exporter` flag for specifying the exporter and `--exporter-opt` for custom values passed to the exporter. In the case of image exporter an image name can be specified.
18+
19+
For example:
20+
21+
```
22+
go run ./examples/buildkit2/buildkit.go | buildctl build --exporter image --exporter-opt name=docker.io/moby/buildkit:dev
23+
```
24+
25+
Accessing from ctr/dist:
26+
27+
```
28+
ctr --namespace buildkit images ls
29+
ctr --namespace buildkit rootfs unpack <manifest-sha>
30+
ctr --namespace buildkit run -t docker.io/moby/buildkit:dev id ash
31+
```
32+
33+
#### Local source
34+
35+
Buildkit now supports building from local sources. Snapshot of the local source files is created similarly to `docker build` build context. The implementation is based on the [incremental context send](https://github.com/moby/moby/pull/32677) feature in `docker-v17.07`. To use in `buildctl` the source definition needs to define a name for local endpoint, and `buildctl build` command provides a mapping from this name to a local directory with a `--local` flag.
36+
37+
```
38+
go run ./examples/buildkit3/buildkit.go --local | buildctl build --local buildkit-src=.
39+
```
40+
41+
### Typed Dockerfile parsing
42+
43+
[PR](https://github.com/moby/moby/pull/33492)
44+
45+
Didn't manage to merge this PR yet. Still in code-review.
46+
47+
48+
### Feedback for `RUN --mount` / `COPY --chown`
49+
50+
There was some new discussion around [`RUN --mount`](https://github.com/moby/moby/issues/32507) or [`COPY --chown`](https://github.com/moby/moby/issues/30110) feature. Currently, it seems that it may be best to try the shared cache capabilities described in `RUN --mount` in https://github.com/moby/buildkit first(it already supports the generic mounting capabilities). So to unblock the people waiting only on the file owner change features it may make sense to implement `COPY --chown` first. Another related candidate for `v17.08` release is https://github.com/moby/moby/issues/32816.
51+
52+
53+
### Proposals for new Dockerfile features that need design feedback:
54+
55+
[Add IMPORT/EXPORT commands to Dockerfile](https://github.com/moby/moby/issues/32100)
56+
57+
[Add `DOCKEROS/DOCKERARCH` default ARG to Dockerfile](https://github.com/moby/moby/issues/32487)
58+
59+
[Add support for `RUN --mount`](https://github.com/moby/moby/issues/32507)
60+
61+
[DAG image builder](https://github.com/moby/moby/issues/32550)
62+
63+
[Option to export the hash of the build context](https://github.com/moby/moby/issues/32963) (new)
64+
65+
[Allow --cache-from=*](https://github.com/moby/moby/issues/33002#issuecomment-299041162) (new)
66+
67+
[Provide advanced .dockeringore use-cases](https://github.com/moby/moby/issues/12886) [2](https://github.com/moby/moby/issues/12886#issuecomment-306247989)
68+
69+
New: [RFC: Distributed BuildKit](https://github.com/moby/buildkit/issues/62)
70+
71+
If you are interested in implementing any of them, leave a comment on the specific issues.
72+
73+
### Builder features currently in code-review:
74+
75+
[Fix shallow git clone in docker-build](https://github.com/moby/moby/pull/33704)
76+
77+
### Backlog
78+
79+
[Build secrets](https://github.com/moby/moby/issues/33343) has not got much traction. If you want this feature to become a reality, please make yourself heard.

0 commit comments

Comments
 (0)