Commit Graph

3248 Commits

Author SHA1 Message Date
Justin Cormack
4261ce0a81 Update moby tool
Adds support for tar output, various fixes.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-08 20:18:59 +01:00
Avi Deitcher
a9e9958d7c Add docs how to use mount options for special mounting containers
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2017-05-08 15:15:01 -04:00
Avi Deitcher
ff7de6e532 Add docs on how to use external disk
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2017-05-08 14:47:45 -04:00
Tycho Andersen
9cd2f434cf projects: remove unused configs from kernel-config
Signed-off-by: Tycho Andersen <tycho@docker.com>
2017-05-08 12:06:25 -06:00
Tycho Andersen
42b6b44fa9 projects: split kernel-config build into three phases
...and add straw man implementations of kernel_config.base and
kernel_config.x86 as examples.

First, splitting the build: to avoid duplication, we split the build into
three parts: a "source" stage, a "config" stage, and a "build" stage. The
"source" stage allows us to use a cached image, so we don't have to
re-download the kernel source every time. The "config" step applies our
patches and generates (and checks) the kernel config. I've left this as a
separate step for now so that we can build just an image with a config in
it, without having to ^C the build. However there's no real reason it needs
to be a separate step, assuming that this kernel config design is
acceptable. The third step is the actual kernel build.

Then there is kernel config management: the bulk of it occurs in
makeconfig.sh, with the idea being that we can specify base, arch, and
version specific config options as necessary.

The config files themselves are lists of options (both positive and
negative). We include the negative options, because we want to explicitly
turn off things that are on in the default config (e.g. CONFIG_USELIB), and
it seems cleaner to do things this way then to have some sort of negative
options list.

The options files are sorted with the default behavior of the "sort"
command, which ignores comment lines, meaning that negative options and
positive options are inline with each other. I don't have a strong opinion
on whether or not to group all negative options, or whether this default
behavior makes sense, so I just left it.

Finally, obviously the .base and .x86 files are incomplete. I mostly
selected a few options with interesting dependencies or special issues
(CONFIG_PANIC_ON_OOPS) with how we manage things, so as to demo how
everything would work. It's not really clear to me that there's a good way
to generate e.g. kernel_config.base, without a lot of painstaking work
(which I'm happy to do if we agree this is a good approach).

Signed-off-by: Tycho Andersen <tycho@docker.com>
2017-05-08 12:06:25 -06:00
Tycho Andersen
1e0021d969 projects: add kernel-config project
This is just a direct import of the current kernel/ directory, with a
slight splitting up of the dockerfiles to build a kernel-source and kernel
image.

Signed-off-by: Tycho Andersen <tycho@docker.com>
2017-05-08 12:06:25 -06:00
Rolf Neugebauer
a4c95be30a Merge pull request #1785 from rneugeba/kern-v4.11
kernel: Add initial support for the 4.11 kernel
2017-05-08 17:31:52 +01:00
Rolf Neugebauer
d633913c92 kernel: Add initial support for the 4.11 kernel
This add a new version of the Hyper-V socket support based on
https://github.com/dcui/linux/commits/decui/hv_sock/next-20170504

Note, this changes the Linux side API to Hyper-V sockets as the
support is now based on the VMware/virtio socket implementation.
This means that the Address Family and the addressing changes.

Other patches from the 4.10 kernel are no longer needed as they
were already upstream.

The new Hyper-V socket code has not been tested, but the kernel
boots fine on HyperKit and Hyper-V.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 17:12:00 +01:00
Justin Cormack
17dd50cec6 Merge pull request #1784 from justincormack/from-tar
Code in the initrd generator to split a single tarball
2017-05-08 17:02:59 +01:00
Rolf Neugebauer
f422c0604b Merge pull request #1774 from rneugeba/no-c
Remove the c-compile package
2017-05-08 16:59:38 +01:00
Rolf Neugebauer
423957cfef Update YAML files to new packages
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 16:49:39 +01:00
Rolf Neugebauer
f0e289439f kernel: Update to use new toybox image
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 16:46:47 +01:00
Rolf Neugebauer
9cb3c53b8f tests: Use git tree hash for virtsock package
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 16:46:47 +01:00
Rolf Neugebauer
725853f11d Update packages/tests to use the new tini package
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 16:46:47 +01:00
Rolf Neugebauer
2273a1c9a8 tools: Remove c-compile
It is not longer used by any package. Some projects
still use it and I haven't updated their builds but they
should continue to work.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 16:46:47 +01:00
Rolf Neugebauer
662ed3ad1f pkg: Remove c-compile from init
There is no need for start-stop-daemon since this package
is using containerd. Remove it and update the init
package to alpine:edge

Also use the git tree hash for the package hash while at it.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 16:46:47 +01:00
Rolf Neugebauer
41b7861bac pkg: Remove c-compile from rgnd
Directly install the required packages from the Alpine base
image to compile the rngd package.

Also use the git tree hash for the package hash while at it.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 16:28:39 +01:00
Rolf Neugebauer
ff45e154e9 tools: Remove c-compile from toybox-media
Directly install the required packages from the Alpine base
image to compile the toybox-media package.

Also use the git tree hash for the package hash while at it.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 16:28:39 +01:00
Rolf Neugebauer
046afdda48 tools: Remove c-compile from tini
Use the alpine base image and install the tools to compile
tini manually. This removes the dependency on c-compile.

Also use the git tree hash for the package hash while at it.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 16:28:39 +01:00
Rolf Neugebauer
98a8be0087 pkg: Update packages to new version of the alpine base image
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 16:28:39 +01:00
Justin Cormack
fb3dab399d Code in the initrd generator to split a single tarball
In the WIP code in `moby` we now have a standard base tarball format,
that includes the kernel and cmdline as files in `/boot` so that the
entire output of the yaml file can default to a single tarball. Then
this can be split back up by LinuxKit into initrd, kernel and cmdline
as needed. This will probably become the only output of the `moby build`
stage, with a `moby package` stage dealing with output formats.

We may remove the output format specification from the yaml file as well,
and just have it in the command.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-08 16:15:50 +01:00
Justin Cormack
46dfcd1574 Merge pull request #1782 from justincormack/report-8-may
Add development report for 8 May
2017-05-08 15:37:20 +01:00
Justin Cormack
2bb0b7121c Add development report for 8 May
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-08 15:22:02 +01:00
Justin Cormack
405309741c Merge pull request #1781 from justincormack/base-virtual-packages
Include virtual packages in alpine mirror
2017-05-08 14:41:26 +01:00
Justin Cormack
8914ccc6da Include virtual packages in alpine mirror
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-08 14:20:27 +01:00
Justin Cormack
85093a5f42 Merge pull request #1713 from fntlnz/linuxkit-cmd/qemu-portforwarding
Port forwarding in qemu runner
2017-05-08 11:15:12 +01:00
Rolf Neugebauer
3a6512d3fb Merge pull request #1779 from rneugeba/kern-up
kernel: Update to 4.4.67/4.9.27/4.10.15
2017-05-08 11:12:05 +01:00
Rolf Neugebauer
0a3cb6d8ce kernel: Update to 4.4.67/4.9.27/4.10.15
Note, the bugfix for the memory leak on a missing disk on Hyper-V
has been incorporated into 4.9 and 4.10 so has been removed from
our patch queue.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-08 10:39:09 +01:00
Lorenzo Fontana
82e6534e9c Port forwarding in qemu runner
Example usage:
	linuxkit run qemu -publish 1111:1111/udp -publish 8081:80/tcp example

Signed-off-by: Lorenzo Fontana <lo@linux.com>
2017-05-06 00:34:44 +02:00
Rolf Neugebauer
f3157af1db Merge pull request #1655 from dave-tucker/test-cleanup
Clean up the tests
2017-05-05 13:56:14 +01:00
Dave Tucker
16cfd3ea2d tests: Rename kernel-config image to test-kernel-config
Signed-off-by: Dave Tucker <dt@docker.com>
2017-05-05 11:51:10 +01:00
Dave Tucker
e4d84cf304 tests: add makefile for tests
this removes all test targets from the top level makefile with the
exception of `make test` that now calls `$(MAKE) -C test`.

all tests now use `moby run` by instead of the older `./scripts`.
this removes the need for dedicated qemu/hyperkit test targets.

Signed-off-by: Dave Tucker <dt@docker.com>
2017-05-05 11:01:09 +01:00
Dave Tucker
fb4d621833 tests: use the poweroff pkg in test-kernel-config
Signed-off-by: Dave Tucker <dt@docker.com>
2017-05-04 23:56:40 +01:00
Dave Tucker
05767273f3 tests: cleanup test directory
- add a `pkg` directory for packages
- add a `cases` directory for yml files

Signed-off-by: Dave Tucker <dt@docker.com>
2017-05-04 23:56:40 +01:00
Justin Cormack
edb909567c Merge pull request #1772 from rneugeba/pkg
Update packages
2017-05-04 23:11:52 +01:00
Rolf Neugebauer
21f1646ce2 Update YAML files with new package hashes
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-04 22:27:59 +01:00
Rolf Neugebauer
17adcefe6c pkg: Convert openntpd to use the Alpine base image and git tree hash
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-04 22:27:59 +01:00
Rolf Neugebauer
41a1d16694 pkg: Use git tree hash for the prometheus node_exporter
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-04 22:27:59 +01:00
Rolf Neugebauer
1748a69f2a pkg: Convert mount to use the Alpine base and git tree hash
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-04 22:27:59 +01:00
Rolf Neugebauer
fce13fb48d pkg: Convert format to use the Alpine base and git tree hash
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-04 22:27:59 +01:00
Rolf Neugebauer
43d97967ef pkg: Convert docker-ce to use the Alpine base and git tree hash
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-04 22:27:59 +01:00
Rolf Neugebauer
e929205c31 pkg: Convert dhcpcd to use the Alpine base image and git tree hash
This builds the dhcpcd package from a fixed Alpine 3.5 base and adds
the dhcpcd daemon from the Alpine base image. This should make the
build reproducible and allows us to use the git tree hash.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-04 22:27:59 +01:00
Rolf Neugebauer
aea6d6c54e pkg: Convert binfmt to use the Alpine base image and git tree hash
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-04 22:27:59 +01:00
Justin Cormack
6deddf749c Merge pull request #1770 from justincormack/cleanup
Fix make clean to remove new -kernel files
2017-05-04 16:34:44 +01:00
Justin Cormack
9eaf89da47 Merge pull request #1764 from dave-tucker/artifacts
Makefile: gather all build artifacts in one location
2017-05-04 16:34:29 +01:00
Justin Cormack
0c53e88be5 Fix make clean to remove new -kernel files
Missed this in the changeover

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-04 16:03:20 +01:00
Dave Tucker
8610716be1 Makefile: gather all build artifacts in one location
This makes it easier for CI to grab artifacts from the ephemeral build
VMs and provides a stable location so they can be used in subsequent
tests. For example, running the LTP tests.

Signed-off-by: Dave Tucker <dt@docker.com>
2017-05-04 12:08:31 +01:00
Rolf Neugebauer
9dead59989 Merge pull request #1769 from rneugeba/kern-up
kernel: Update to 4.4.66/4.9.26/4.10.14
2017-05-04 11:13:47 +01:00
Rolf Neugebauer
566bb2a1f0 kernel: Update to 4.4.66/4.9.26/4.10.14
This also adds the cherry-picked commit f1c635b439a5c017 ("scsi: storvsc: Workaround
for virtual DVD SCSI version") from 4.11 for the 4.9 and 4.10 kernels. This commit
fixes a crash/memory leak on Hyper-V when no disk drives are attached and if one
boots of a CD-ROM drive.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-04 10:58:32 +01:00
Justin Cormack
81c3b92a7a Merge pull request #1766 from ndauten/ndauten-patch-1
Spelling error: Dautenhan -> Dautenhahn
2017-05-03 19:15:39 +01:00