Simplifies the build process, and makes testing easier as there is a
Docker container you can run to test things.
Replaces #994
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
C version of #1006
Note that I switched all the C builds to use -O2 and that meant
that the compiler found some more warnings so I also fixed these
up. The possibly undefined ones were harmless, the aliasing one
is now more correct.
As these are small programs, the caching from `docker build` makes
no real difference, and worst case compile time is much better.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
Makes updates simpler.
Makes it explicit that `perf` currently requires Alpine 3.4, and update kernel version.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
Now there is an Alpine 3.5 variant of the Go 1.7 images, use this.
fix#972
Note updated the containers/binfmt image as this will be converted
to go-compile shortly, at which point alpine-build-go can be removed.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
As `grep` echoes the output, no need to have `set -x` on this script,
make output smaller and cleaner.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
Do not build from Go image as not clear we will switch it.
Print some output at the end for a quick visual success indicator.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
Introduced in torvalds/linux@bcb6f6d2b9 to
check that nsec values are sane, a max was used where a min should have
been.
Fixes#923.
Signed-off-by: David Sheets <dsheets@docker.com>
As the build requires networking, is non repeatable as dependencies
may change, makes sense to make it a static package for now.
Plan is to rewrite in Go anyway at some point see #467
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
Go code is really fast to compile so we do not really need to use the
cache features of `docker build`. So make a compile container instead.
This can also output a build context and Dockerfile if you want to do
a build.
For reference, an uncached `docker build` of our Go code takes about
7s, a cached one 1.2s, and this takes 1.7s, so the best case is a little
worse, but we save a lot of images, and the worst case is better.
This is mainly designed to make the nested builds for containerd
containers simpler too. Will add a variant for the C code as well.
Also add `-static` to the flags so we always make static executables,
which was omitted previously.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
This is the same as aufs variant, but without AUFS patches. Looks like
GCP may need this, at least initially.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
On older Windows builds (e.g. 10586) the 4.9.x TimeSync integration
service spams the logs with multiple messages a second of the form:
hv_utils: Using TimeSync version 4.0
It seems that a new protocol version was introduced with newer
Windows 10 builds but the kernel patches don't negotiate the
protocol version based on what the host supports, but instead
simply use the Windows version of the host.
Added two new patches:
- the first one is a cherry-pick from upstream which fixes some
of the TimeSync protocol negotiation, but does not fix the issue.
- the second one forces the TimeSync protocol to version 3.0 even on
Windows 10 hosts.
Patches based on: https://github.com/rneugeba/linux-stable/tree/v4.9.2-moby
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
As we released this in the beta channel, and it is a nice feature that our users love,
backporting this to 4.4 so we don't have to revert it or conditionally behave differently.
This is upstream Linux commits
- 9a08c352d05305ca7651540c3b107da1e4e1f40b fs: add filp_clone_open API
- 948b701a607f123df92ed29084413e5dd8cda2ed binfmt_misc: add persistent opened binary handler for containers
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
- Add back Linux kernel 4.4.x support, only for AUFS at present.
- Add back config options that are different for 4.4 series
See #923 for discussion on whether we need to do this.
Signed-off-by: Justin Cormack <justin.cormack@docker.com>