diff --git a/examples/docker.yml b/examples/docker.yml index 05c327a57..b9193bf27 100644 --- a/examples/docker.yml +++ b/examples/docker.yml @@ -1,7 +1,8 @@ kernel: image: "mobylinux/kernel:4.9.x" cmdline: "console=ttyS0 console=tty0 page_poison=1" -init: "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" +init: + - "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" system: - name: sysctl image: "mobylinux/sysctl:2cf2f9d5b4d314ba1bfc22b2fe931924af666d8c" diff --git a/examples/gcp.yml b/examples/gcp.yml index 11cff1c0a..eb8889c81 100644 --- a/examples/gcp.yml +++ b/examples/gcp.yml @@ -1,7 +1,8 @@ kernel: image: "mobylinux/kernel:4.9.x" cmdline: "console=ttyS0 page_poison=1" -init: "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" +init: + - "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" system: - name: sysctl image: "mobylinux/sysctl:2cf2f9d5b4d314ba1bfc22b2fe931924af666d8c" diff --git a/examples/sshd.yml b/examples/sshd.yml index be77c86fa..308a84d0e 100644 --- a/examples/sshd.yml +++ b/examples/sshd.yml @@ -1,7 +1,8 @@ kernel: image: "mobylinux/kernel:4.9.x" cmdline: "console=ttyS0 page_poison=1" -init: "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" +init: + - "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" system: - name: sysctl image: "mobylinux/sysctl:2cf2f9d5b4d314ba1bfc22b2fe931924af666d8c" diff --git a/examples/vmware.yml b/examples/vmware.yml index 541e9729e..0a687733a 100644 --- a/examples/vmware.yml +++ b/examples/vmware.yml @@ -1,7 +1,8 @@ kernel: image: "mobylinux/kernel:4.9.x" cmdline: "console=tty0 page_poison=1" -init: "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" +init: + - "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" system: - name: sysctl image: "mobylinux/sysctl:2cf2f9d5b4d314ba1bfc22b2fe931924af666d8c" diff --git a/moby.yml b/moby.yml index f73c5f82a..27d3629b7 100644 --- a/moby.yml +++ b/moby.yml @@ -1,7 +1,8 @@ kernel: image: "mobylinux/kernel:4.9.x" cmdline: "console=ttyS0 console=tty0 page_poison=1" -init: "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" +init: + - "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" system: - name: sysctl image: "mobylinux/sysctl:2cf2f9d5b4d314ba1bfc22b2fe931924af666d8c" diff --git a/projects/demo/etcd/etcd.yml b/projects/demo/etcd/etcd.yml index f06cdd87a..3cbcfad17 100644 --- a/projects/demo/etcd/etcd.yml +++ b/projects/demo/etcd/etcd.yml @@ -1,7 +1,8 @@ kernel: image: "mobylinux/kernel:4.9.x" cmdline: "console=ttyS0 console=tty0 page_poison=1" -init: "mobylinux/init:a27e32a8d6c8865d691fbfb4d0bbb93846cf7802" +init: + - "mobylinux/init:a27e32a8d6c8865d691fbfb4d0bbb93846cf7802" system: - name: sysctl image: "mobylinux/sysctl:2cf2f9d5b4d314ba1bfc22b2fe931924af666d8c" diff --git a/projects/demo/intro/intro.yml b/projects/demo/intro/intro.yml index 375df125b..2f89cede3 100644 --- a/projects/demo/intro/intro.yml +++ b/projects/demo/intro/intro.yml @@ -1,7 +1,8 @@ kernel: image: "mobylinux/kernel:4.9.x" cmdline: "console=ttyS0 console=tty0 page_poison=1" -init: "mobylinux/init:a27e32a8d6c8865d691fbfb4d0bbb93846cf7802" +init: + - "mobylinux/init:a27e32a8d6c8865d691fbfb4d0bbb93846cf7802" system: - name: sysctl image: "mobylinux/sysctl:2cf2f9d5b4d314ba1bfc22b2fe931924af666d8c" diff --git a/projects/kubernetes/kube-master.yml b/projects/kubernetes/kube-master.yml index dfbf851b2..967022147 100644 --- a/projects/kubernetes/kube-master.yml +++ b/projects/kubernetes/kube-master.yml @@ -1,7 +1,8 @@ kernel: image: "mobylinux/kernel:4.9.x" cmdline: "console=ttyS0 console=tty0 page_poison=1" -init: "mobylinux/init:c0007f0cdf1ef821a981fcc676e3f1c2dd9ab5b1" +init: + - "mobylinux/init:c0007f0cdf1ef821a981fcc676e3f1c2dd9ab5b1" system: - name: sysctl image: "mobylinux/sysctl:2cf2f9d5b4d314ba1bfc22b2fe931924af666d8c" diff --git a/projects/miragesdk/examples/mirage-dhcp.yml b/projects/miragesdk/examples/mirage-dhcp.yml index 0ac38c718..e8cd50da8 100644 --- a/projects/miragesdk/examples/mirage-dhcp.yml +++ b/projects/miragesdk/examples/mirage-dhcp.yml @@ -1,7 +1,8 @@ kernel: image: "mobylinux/kernel:4.9.x" cmdline: "console=ttyS0 page_poison=1" -init: "mobylinux/init:9d755f7e7d108d523448e4a503f1613b7d870389@sha256:9ccb16f2d8b3a09d12f5459106763f1836c064e420a13360e2e25599337960dc" +init: + - "mobylinux/init:9d755f7e7d108d523448e4a503f1613b7d870389@sha256:9ccb16f2d8b3a09d12f5459106763f1836c064e420a13360e2e25599337960dc" system: - name: sysctl image: "mobylinux/sysctl:2cf2f9d5b4d314ba1bfc22b2fe931924af666d8c" diff --git a/projects/selinux/selinux.yml b/projects/selinux/selinux.yml index 6b0d718e4..af937d18a 100644 --- a/projects/selinux/selinux.yml +++ b/projects/selinux/selinux.yml @@ -1,7 +1,8 @@ kernel: image: "mobylinux/kernel-selinux:4.9.x" cmdline: "console=ttyS0 page_poison=1 security=selinux selinux=1" -init: "mobylinux/init:b5249a412536b4e69f8e1f668680d2ae185cc505" +init: + - "mobylinux/init:b5249a412536b4e69f8e1f668680d2ae185cc505" system: - name: sysctl image: "mobylinux/sysctl:2cf2f9d5b4d314ba1bfc22b2fe931924af666d8c" diff --git a/projects/swarmd/swarmd.yml b/projects/swarmd/swarmd.yml index 5ec46eef6..aace85a0f 100644 --- a/projects/swarmd/swarmd.yml +++ b/projects/swarmd/swarmd.yml @@ -1,7 +1,8 @@ kernel: image: "mobylinux/kernel:4.9.x" cmdline: "console=ttyS0 console=tty0 page_poison=1" -init: "mobylinux/init:c0007f0cdf1ef821a981fcc676e3f1c2dd9ab5b1" +init: + - "mobylinux/init:c0007f0cdf1ef821a981fcc676e3f1c2dd9ab5b1" system: - name: sysctl image: "mobylinux/sysctl:2cf2f9d5b4d314ba1bfc22b2fe931924af666d8c" diff --git a/projects/wireguard/examples/wireguard.yml b/projects/wireguard/examples/wireguard.yml index bf93e839e..07ca39877 100644 --- a/projects/wireguard/examples/wireguard.yml +++ b/projects/wireguard/examples/wireguard.yml @@ -1,7 +1,8 @@ kernel: image: "mobylinux/kernel-wireguard:4.9.x" cmdline: "console=ttyS0 page_poison=1" -init: "mobylinux/init-wireguard:4309fb8b65cafa9e07b0e75d86a0bff4070e67e9" +init: + - "mobylinux/init-wireguard:4309fb8b65cafa9e07b0e75d86a0bff4070e67e9" system: - name: sysctl image: "mobylinux/sysctl:2cf2f9d5b4d314ba1bfc22b2fe931924af666d8c" diff --git a/src/cmd/moby/build.go b/src/cmd/moby/build.go index f8fcf8375..10ff1c29b 100644 --- a/src/cmd/moby/build.go +++ b/src/cmd/moby/build.go @@ -97,21 +97,24 @@ func buildInternal(name string, pull bool, conf string) { } initrdAppend(iw, ktar) - // convert init image to tarball - if pull { - log.Infof("Pull init: %s", m.Init) - err := dockerPull(m.Init) - if err != nil { - log.Fatalf("Could not pull image %s: %v", m.Init, err) + // convert init images to tarballs + log.Infof("Add init containers:") + for _, ii := range m.Init { + if pull { + log.Infof("Pull init image: %s", ii) + err := dockerPull(ii) + if err != nil { + log.Fatalf("Could not pull image %s: %v", ii, err) + } } + log.Infof("Process init image: %s", ii) + init, err := ImageExtract(ii, "") + if err != nil { + log.Fatalf("Failed to build init tarball from %s: %v", ii, err) + } + buffer := bytes.NewBuffer(init) + initrdAppend(iw, buffer) } - log.Infof("Process init: %s", m.Init) - init, err := ImageExtract(m.Init, "") - if err != nil { - log.Fatalf("Failed to build init tarball: %v", err) - } - buffer := bytes.NewBuffer(init) - initrdAppend(iw, buffer) log.Infof("Add system containers:") for i, image := range m.System { @@ -161,7 +164,7 @@ func buildInternal(name string, pull bool, conf string) { } // add files - buffer, err = filesystem(m) + buffer, err := filesystem(m) if err != nil { log.Fatalf("failed to add filesystem parts: %v", err) } diff --git a/src/cmd/moby/config.go b/src/cmd/moby/config.go index 7a8db9d77..ae7ddab07 100644 --- a/src/cmd/moby/config.go +++ b/src/cmd/moby/config.go @@ -24,7 +24,7 @@ type Moby struct { Image string Cmdline string } - Init string + Init []string System []MobyImage Daemon []MobyImage Files []struct { diff --git a/test/ltp/test-ltp.yml b/test/ltp/test-ltp.yml index 1381d8d20..4c5efcae2 100644 --- a/test/ltp/test-ltp.yml +++ b/test/ltp/test-ltp.yml @@ -1,7 +1,8 @@ kernel: image: "mobylinux/kernel:4.9.x" cmdline: "console=ttyS0" -init: "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" +init: + - "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" system: - name: ltp image: "mobylinux/test-ltp-20170116:fdca2d1bb019b1d51e722e6032c82c7933d4b870" diff --git a/test/test.yml b/test/test.yml index 0afe9e5c7..61b2fc920 100644 --- a/test/test.yml +++ b/test/test.yml @@ -1,7 +1,8 @@ kernel: image: "mobylinux/kernel:4.9.x" cmdline: "console=ttyS0" -init: "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" +init: + - "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" system: - name: binfmt image: "mobylinux/binfmt:bdb754f25a5d851b4f5f8d185a43dfcbb3c22d01" diff --git a/test/virtsock/test-virtsock-server.yml b/test/virtsock/test-virtsock-server.yml index 8850b20c7..dd31a0ffe 100644 --- a/test/virtsock/test-virtsock-server.yml +++ b/test/virtsock/test-virtsock-server.yml @@ -5,7 +5,8 @@ kernel: # image: "mobylinux/kernel:4.9.14-0" image: "mobylinux/kernel:4.9.x" cmdline: "console=ttyS0 page_poison=1" -init: "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" +init: + - "mobylinux/init:7a17035030dca3938947516241f51d28922cebb2" system: - name: sysctl image: "mobylinux/sysctl:2cf2f9d5b4d314ba1bfc22b2fe931924af666d8c"