Commit Graph

108 Commits

Author SHA1 Message Date
Rolf Neugebauer
aecad407c5 tools: Add shellcheck to the Alpine base
We use the "official" Alpine based Docker image and extract
the binary and libraries from it and add to the base. Compiling
it from source would require a Haskell setup...

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-26 15:50:54 +01:00
Rolf Neugebauer
977a2eb0ff tools: Switch the Alpine base image to Alpine 3.6
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-26 15:50:54 +01:00
Riyaz Faizullabhoy
05f1c282d5 Update images that have been newly setup for signing to use content trust on push
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-05-25 11:06:08 -07:00
Rolf Neugebauer
a73be1d7ef tools: Add VM integration agents to the Alpine base
Add the Qemu, Hyper-V and VMware VM tools to the base

Also update the versions file.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-24 09:35:37 +01:00
Justin Cormack
e3a4a88e73 Update alpine package
- minor cleanup
- remove cross compile support from go-compile script as not needed

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-20 10:59:31 +01:00
Justin Cormack
fc69bcf288 Partially fix Windows build with go-compile
Fix go-compile to not use buildmode pie for Windows.

See #1863

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-20 10:57:48 +01:00
Justin Cormack
78728c281d Add go-compile script to linuxkit/alpine
This means Go code can use the same base image, which now includes Go tooling.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-19 14:22:12 +01:00
Rolf Neugebauer
b2eacf0f6c tools: Remove toybox. It's no longer used by any active packages
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-18 18:55:22 +01:00
Rolf Neugebauer
d06ecc5f79 tools: Remove tini image
All users in ./pkg and ./test have been converted to use
tini from the alpine base image.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-18 18:55:22 +01:00
Rolf Neugebauer
98a99c6482 tools: Add packages to alpine base to create a base system
The added packages are necessary to create a base Alpine
container image and for converting more packages.

Update the versions file to the latest versions

Also make the HUB org/registry build time configurable.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-05-18 18:55:22 +01:00
Justin Cormack
fe4b6aaf5d Add image builder for compressed disk image
This is a fairly generic bootable disk with syslinux. Should
work if you `dd` it onto a USB stick, and should also work for AWS.

You need to uncompress it of course! Default size is 1G.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-12 14:43:55 +01:00
Justin Cormack
f2fc503bb0 Add Go to linuxkit/alpine
Note this is currently Go 1.7.4 but should be updated soon to 1.8.1.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-08 22:03:02 +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
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
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
861c70c0e4 Merge pull request #1763 from justincormack/alpine-base
Use Alpine base image that includes packages
2017-05-03 16:55:54 +01:00
Justin Cormack
edfac0e8fb Add a base Alpine package that includes a package mirror
This means that we limit to one place where we use network access
in building, and in future all other package builds can be deterministic.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-03 16:29:53 +01:00
Justin Cormack
fa90764b55 Remove unused mkimage-base
We have not used this for ages, we use Go code in `moby` tool to
do this now.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-03 14:27:05 +01:00
Justin Cormack
6155e8c8bc Change to use kernel not bzImage everywhere
Previously we hardcoded `bzImage` which is not used for all
use cases or architectures.

fix #1630

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-04-28 16:24:15 +01:00
Justin Cormack
98dfe7ad55 Merge pull request #1721 from riyazdf/more-signing-targets
Signing targets for binfmt, rngd, compilers, toybox, tini
2017-04-27 18:53:49 +01:00
Riyaz Faizullabhoy
2c4c55859f Add separate sign-tag target, keep tool building offline
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-04-27 10:34:40 -07:00
Riyaz Faizullabhoy
38ad84bfbd pull base images with content trust for binfmt, rngd, tini, toybox-media
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-04-26 14:28:30 -07:00
Riyaz Faizullabhoy
72e7945ec6 Add signing targets for binfmt, c-compile, go-compile, rngd, tini, toybox-media
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-04-26 10:55:20 -07:00
Rolf Neugebauer
6240f73bd7 tools: Move and rename kernel-compile container
Move it to tools and renamed it to kernel-compile, similar to
c-compile and go-compile.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-26 14:53:15 +01:00
Rolf Neugebauer
115b09faad Merge pull request #1704 from ijc25/fix-unique-fallback-hostname
Switch fallback hostname to linuxkit-* from moby-*
2017-04-26 09:54:19 +01:00
Justin Cormack
252e32aac5 Remove the moby tool from this repo
Updated go-compile to be able to compile remotely. Note I
did not update the oter users of go-compile as it does not affect
them.

Update `go get` instructions to fetch new one, or `make && make install`
will still work.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-04-25 14:53:32 +01:00
Ian Campbell
20cfa2af2c Switch fallback hostname to linuxkit-* from moby-*
This was missed when things were renamed.

The intention with this code was (apparently) to provide a (pseudo)unique
hostname in the case where something more specific was not provided (e.g. by
DHCP). Make this a little clearer by using '(none)' rather than 'linuxkit' as
the default, in the normal case this will be overwritten by something more
specific and if it isn't we will change it to something somewhat unique derived
from the MAC address (as before). nb: '(none)' is already used by Debian so I
think it is a safe choice as the sentinel value.

The use of both CONFIG_DEFAULT_HOSTNAME and the explicit /etc/hostname from
mkimage.sh is likely to be redundant in some cases, but neither seems to
completely cover all cases so keep both.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2017-04-25 14:09:38 +01:00
Rolf Neugebauer
60a12f1c52 tools: Move toybox to ./tools and use a multi-stage build
Also use c-compile to compile it

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-24 18:41:27 +01:00
Rolf Neugebauer
85bcee93dd tools: Move tini to ./tools and convert to multi-stage build
Previously the "tini" contained the entire build. Using the
multi-stage build creates a new "tini" base image, which only
contains the "/bin/tini". This image can be used as the base
image for packages requiring "tini".

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-24 18:41:27 +01:00
Rolf Neugebauer
370f8e7eb0 tools: Add more utilities to c-compile
These utilities are needed to compile tini, rngd, and toybox.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-24 18:41:27 +01:00
Dave Tucker
0ba381c77a tools: Change qemu image for use with moby run
- Remove the qemu.sh entrypoint
- This means that any qemu command can be used (e.g qemu.img)

Signed-off-by: Dave Tucker <dt@docker.com>
2017-04-24 15:16:51 +01:00
Riyaz Faizullabhoy
31a8480878 Add ineffassign to go-compile, use tmp files to ensure proper failure
handling

Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
2017-04-12 14:42:19 -07:00
Rolf Neugebauer
d14d462910 tools: Rename hub org to linuxkit
Rename various mention of moby while at it

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-12 21:28:17 +01:00
Dave Tucker
00edddac9a Add vndr to go-compile and add vendoring docs
This makes it easier to safely udpate the vendor directory

Signed-off-by: Dave Tucker <dt@docker.com>
2017-04-11 13:35:51 +01:00
Dave Tucker
bf7ab9f04c tools: rename mkimage-gce to mkimage-gcp
Also removes `mobyplatform` from the cmdline as this is no longer used

Signed-off-by: Dave Tucker <dt@docker.com>
2017-04-06 16:59:57 +01:00
Justin Cormack
40cc6d8110 Merge pull request #1517 from samoht/make-qemu
Really fix `make qemu`
2017-04-06 15:14:22 +01:00
Thomas Gazagnaire
7f0761c5f1 Really fix make qemu
Previously, the cmdline file was never sent in the build context which
caused the script to pick the default options.

Also, when mulitple options are specified (not the default) the right
escaping needs to be used.

Signed-off-by: Thomas Gazagnaire <thomas@gazagnaire.org>
2017-04-06 16:05:35 +02:00
Rolf Neugebauer
f76f2b6654 tools: Add --ldflags to go-compile
This flags allows passing additional ldflags to the build.
It is primarily there to pass -C arguments to specify values
of variables at compile time.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-06 10:55:18 +01:00
Justin Cormack
4d9bd63b1b Merge pull request #1439 from dave-tucker/uefi
Add a runner for UEFI ISOs
2017-04-04 10:52:32 +01:00
Justin Cormack
065af9707c Replace riddler with code that constructs config.json directly
Generated largely from the specified config; small parts taken from `docker image inspect`,
such as the command line.

Renamed some of the yaml keys to match the OCI spec rather than Docker Compose as
we decided they are more readable, no more underscores.

Add some extra functionality
- tmpfs specification
- fully general mount specification
- no new privileges can be specified now

For nostalgic reasons, using engine-api to talk to the docker cli as
we only need an old API version, and it is nice and easy to vendor...

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-04-03 23:28:55 +01:00
Justin Cormack
47e483fea3 Do not set ambient caps for now
Will make it explicit later.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-04-03 18:39:16 +01:00
Ian Campbell
709402d780 Update to runc ef9a4b315558d31eae520725ff67383c2f79c3cb
This is compatible with containerd 8353da59c6ae7e1933aac2228df23541ef8b163f
which was picked up by d2caae4c1a.

This required jiggering with riddler output some more to update to new OCI
config.json format for capabilities.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2017-04-03 16:47:14 +01:00
Dave Tucker
6726746484 Add a runner for UEFI ISOs
Fixes #480

Signed-off-by: Dave Tucker <dt@docker.com>
2017-04-03 14:13:37 +01:00
Rolf Neugebauer
be16cf67b4 tools: Fix make-efi script
mkfs.vfat prints output (even without the -v option) which ends up
in front of the ISO, which is cat'ed to stdout. This made the generated
ISO unbootable. Redirect stdout of mkfs.vfat to /dev/null.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-04-01 16:22:35 +01:00
Rolf Neugebauer
b4a3e2e0da Merge pull request #1411 from rneugeba/cleanup
more repository cleanup
2017-03-29 16:52:32 +01:00
Rolf Neugebauer
557f039747 base: Move guestfs to tools.
Guestfs is not really a base package and is only used
byt other images in the ./tools directory. Move it there.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-03-29 16:37:59 +01:00
Rolf Neugebauer
2c49714ef9 projects: Move AWS bits to projects until they are usable again
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-03-29 16:28:21 +01:00
Rolf Neugebauer
6a29d153f5 infrakit: Move the hyperkit instance plugin into the source directory
- The tools directory ideally should not contain source code
- Removes double vendoring of packagages
- Makes it easer to hook the build into the top-level Makefile

Eventually, the plugin should be moved to the infrakit repo.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-03-25 13:02:45 +01:00
Justin Cormack
ab5cb52823 Update hyperkit Go bindings
Fixes location of hyperkit executable with recent builds of Docker for Mac

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-03-24 16:31:08 +00:00