Allow no kernel to be specified

This is needed for non LinuxKit use cases.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
This commit is contained in:
Justin Cormack 2017-05-09 13:03:58 +01:00
parent a1b24b4de2
commit e25033f70d

View File

@ -136,25 +136,27 @@ func buildInternal(m *Moby, name string, pull bool) []byte {
log.Fatalf("Could not pull image %s: %v", m.Kernel.Image, err) log.Fatalf("Could not pull image %s: %v", m.Kernel.Image, err)
} }
} }
// get kernel and initrd tarball from container if m.Kernel.Image != "" {
log.Infof("Extract kernel image: %s", m.Kernel.Image) // get kernel and initrd tarball from container
const ( log.Infof("Extract kernel image: %s", m.Kernel.Image)
kernelName = "kernel" const (
kernelAltName = "bzImage" kernelName = "kernel"
ktarName = "kernel.tar" kernelAltName = "bzImage"
) ktarName = "kernel.tar"
out, err := ImageExtract(m.Kernel.Image, "", enforceContentTrust(m.Kernel.Image, &m.Trust), pull) )
if err != nil { out, err := ImageExtract(m.Kernel.Image, "", enforceContentTrust(m.Kernel.Image, &m.Trust), pull)
log.Fatalf("Failed to extract kernel image and tarball: %v", err) if err != nil {
} log.Fatalf("Failed to extract kernel image and tarball: %v", err)
buf := bytes.NewBuffer(out) }
buf := bytes.NewBuffer(out)
kernel, ktar, err := untarKernel(buf, kernelName, kernelAltName, ktarName, m.Kernel.Cmdline) kernel, ktar, err := untarKernel(buf, kernelName, kernelAltName, ktarName, m.Kernel.Cmdline)
if err != nil { if err != nil {
log.Fatalf("Could not extract kernel image and filesystem from tarball. %v", err) log.Fatalf("Could not extract kernel image and filesystem from tarball. %v", err)
}
initrdAppend(iw, kernel)
initrdAppend(iw, ktar)
} }
initrdAppend(iw, kernel)
initrdAppend(iw, ktar)
// convert init images to tarballs // convert init images to tarballs
log.Infof("Add init containers:") log.Infof("Add init containers:")