mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-27 20:48:11 +00:00
commit
977dec7ae2
@ -49,9 +49,10 @@ var additions = map[string]addFun{
|
|||||||
"docker": func(tw *tar.Writer) error {
|
"docker": func(tw *tar.Writer) error {
|
||||||
log.Infof(" Adding Dockerfile")
|
log.Infof(" Adding Dockerfile")
|
||||||
hdr := &tar.Header{
|
hdr := &tar.Header{
|
||||||
Name: "Dockerfile",
|
Name: "Dockerfile",
|
||||||
Mode: 0644,
|
Mode: 0644,
|
||||||
Size: int64(len(dockerfile)),
|
Size: int64(len(dockerfile)),
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(hdr); err != nil {
|
if err := tw.WriteHeader(hdr); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -340,6 +341,7 @@ func (k *kernelFilter) WriteHeader(hdr *tar.Header) error {
|
|||||||
Name: "boot",
|
Name: "boot",
|
||||||
Mode: 0755,
|
Mode: 0755,
|
||||||
Typeflag: tar.TypeDir,
|
Typeflag: tar.TypeDir,
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(whdr); err != nil {
|
if err := tw.WriteHeader(whdr); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -347,9 +349,10 @@ func (k *kernelFilter) WriteHeader(hdr *tar.Header) error {
|
|||||||
}
|
}
|
||||||
// add the cmdline in /boot/cmdline
|
// add the cmdline in /boot/cmdline
|
||||||
whdr := &tar.Header{
|
whdr := &tar.Header{
|
||||||
Name: "boot/cmdline",
|
Name: "boot/cmdline",
|
||||||
Mode: 0644,
|
Mode: 0644,
|
||||||
Size: int64(len(k.cmdline)),
|
Size: int64(len(k.cmdline)),
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(whdr); err != nil {
|
if err := tw.WriteHeader(whdr); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -360,9 +363,10 @@ func (k *kernelFilter) WriteHeader(hdr *tar.Header) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
whdr = &tar.Header{
|
whdr = &tar.Header{
|
||||||
Name: "boot/kernel",
|
Name: "boot/kernel",
|
||||||
Mode: hdr.Mode,
|
Mode: hdr.Mode,
|
||||||
Size: hdr.Size,
|
Size: hdr.Size,
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(whdr); err != nil {
|
if err := tw.WriteHeader(whdr); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -380,15 +384,17 @@ func (k *kernelFilter) WriteHeader(hdr *tar.Header) error {
|
|||||||
Name: "boot",
|
Name: "boot",
|
||||||
Mode: 0755,
|
Mode: 0755,
|
||||||
Typeflag: tar.TypeDir,
|
Typeflag: tar.TypeDir,
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(whdr); err != nil {
|
if err := tw.WriteHeader(whdr); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
whdr := &tar.Header{
|
whdr := &tar.Header{
|
||||||
Name: "boot/ucode.cpio",
|
Name: "boot/ucode.cpio",
|
||||||
Mode: hdr.Mode,
|
Mode: hdr.Mode,
|
||||||
Size: hdr.Size,
|
Size: hdr.Size,
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(whdr); err != nil {
|
if err := tw.WriteHeader(whdr); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -544,6 +550,7 @@ func filesystem(m Moby, tw *tar.Writer, idMap map[string]uint32) error {
|
|||||||
Mode: dirMode,
|
Mode: dirMode,
|
||||||
Uid: int(uid),
|
Uid: int(uid),
|
||||||
Gid: int(gid),
|
Gid: int(gid),
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
err := tw.WriteHeader(hdr)
|
err := tw.WriteHeader(hdr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -554,10 +561,11 @@ func filesystem(m Moby, tw *tar.Writer, idMap map[string]uint32) error {
|
|||||||
}
|
}
|
||||||
addedFiles[f.Path] = true
|
addedFiles[f.Path] = true
|
||||||
hdr := &tar.Header{
|
hdr := &tar.Header{
|
||||||
Name: f.Path,
|
Name: f.Path,
|
||||||
Mode: mode,
|
Mode: mode,
|
||||||
Uid: int(uid),
|
Uid: int(uid),
|
||||||
Gid: int(gid),
|
Gid: int(gid),
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if f.Directory {
|
if f.Directory {
|
||||||
if f.Contents != nil {
|
if f.Contents != nil {
|
||||||
|
@ -72,6 +72,7 @@ func tarPrefix(path string, tw tarWriter) error {
|
|||||||
Name: mkdir,
|
Name: mkdir,
|
||||||
Mode: 0755,
|
Mode: 0755,
|
||||||
Typeflag: tar.TypeDir,
|
Typeflag: tar.TypeDir,
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(hdr); err != nil {
|
if err := tw.WriteHeader(hdr); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -217,9 +218,10 @@ func ImageBundle(prefix string, ref *reference.Spec, config []byte, runtime Runt
|
|||||||
}
|
}
|
||||||
|
|
||||||
hdr := &tar.Header{
|
hdr := &tar.Header{
|
||||||
Name: path.Join(prefix, "config.json"),
|
Name: path.Join(prefix, "config.json"),
|
||||||
Mode: 0644,
|
Mode: 0644,
|
||||||
Size: int64(len(config)),
|
Size: int64(len(config)),
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(hdr); err != nil {
|
if err := tw.WriteHeader(hdr); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -237,6 +239,7 @@ func ImageBundle(prefix string, ref *reference.Spec, config []byte, runtime Runt
|
|||||||
Name: tmp,
|
Name: tmp,
|
||||||
Mode: 0755,
|
Mode: 0755,
|
||||||
Typeflag: tar.TypeDir,
|
Typeflag: tar.TypeDir,
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(hdr); err != nil {
|
if err := tw.WriteHeader(hdr); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -246,6 +249,7 @@ func ImageBundle(prefix string, ref *reference.Spec, config []byte, runtime Runt
|
|||||||
Name: path.Join(prefix, "rootfs"),
|
Name: path.Join(prefix, "rootfs"),
|
||||||
Mode: 0755,
|
Mode: 0755,
|
||||||
Typeflag: tar.TypeDir,
|
Typeflag: tar.TypeDir,
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(hdr); err != nil {
|
if err := tw.WriteHeader(hdr); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -264,6 +268,7 @@ func ImageBundle(prefix string, ref *reference.Spec, config []byte, runtime Runt
|
|||||||
Name: path.Join(prefix, "rootfs"),
|
Name: path.Join(prefix, "rootfs"),
|
||||||
Mode: 0755,
|
Mode: 0755,
|
||||||
Typeflag: tar.TypeDir,
|
Typeflag: tar.TypeDir,
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(hdr); err != nil {
|
if err := tw.WriteHeader(hdr); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -286,9 +291,10 @@ func ImageBundle(prefix string, ref *reference.Spec, config []byte, runtime Runt
|
|||||||
}
|
}
|
||||||
|
|
||||||
hdr = &tar.Header{
|
hdr = &tar.Header{
|
||||||
Name: path.Join(prefix, "runtime.json"),
|
Name: path.Join(prefix, "runtime.json"),
|
||||||
Mode: 0644,
|
Mode: 0644,
|
||||||
Size: int64(len(runtimeConfig)),
|
Size: int64(len(runtimeConfig)),
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(hdr); err != nil {
|
if err := tw.WriteHeader(hdr); err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -273,9 +273,10 @@ func tarInitrdKernel(kernel, initrd []byte, cmdline string) (*bytes.Buffer, erro
|
|||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
tw := tar.NewWriter(buf)
|
tw := tar.NewWriter(buf)
|
||||||
hdr := &tar.Header{
|
hdr := &tar.Header{
|
||||||
Name: "kernel",
|
Name: "kernel",
|
||||||
Mode: 0600,
|
Mode: 0600,
|
||||||
Size: int64(len(kernel)),
|
Size: int64(len(kernel)),
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
err := tw.WriteHeader(hdr)
|
err := tw.WriteHeader(hdr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -286,9 +287,10 @@ func tarInitrdKernel(kernel, initrd []byte, cmdline string) (*bytes.Buffer, erro
|
|||||||
return buf, err
|
return buf, err
|
||||||
}
|
}
|
||||||
hdr = &tar.Header{
|
hdr = &tar.Header{
|
||||||
Name: "initrd.img",
|
Name: "initrd.img",
|
||||||
Mode: 0600,
|
Mode: 0600,
|
||||||
Size: int64(len(initrd)),
|
Size: int64(len(initrd)),
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
err = tw.WriteHeader(hdr)
|
err = tw.WriteHeader(hdr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -299,9 +301,10 @@ func tarInitrdKernel(kernel, initrd []byte, cmdline string) (*bytes.Buffer, erro
|
|||||||
return buf, err
|
return buf, err
|
||||||
}
|
}
|
||||||
hdr = &tar.Header{
|
hdr = &tar.Header{
|
||||||
Name: "cmdline",
|
Name: "cmdline",
|
||||||
Mode: 0600,
|
Mode: 0600,
|
||||||
Size: int64(len(cmdline)),
|
Size: int64(len(cmdline)),
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
err = tw.WriteHeader(hdr)
|
err = tw.WriteHeader(hdr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -389,9 +392,10 @@ func outputKernelInitrdTarball(base string, kernel []byte, initrd []byte, cmdlin
|
|||||||
defer f.Close()
|
defer f.Close()
|
||||||
tw := tar.NewWriter(f)
|
tw := tar.NewWriter(f)
|
||||||
hdr := &tar.Header{
|
hdr := &tar.Header{
|
||||||
Name: "kernel",
|
Name: "kernel",
|
||||||
Mode: 0644,
|
Mode: 0644,
|
||||||
Size: int64(len(kernel)),
|
Size: int64(len(kernel)),
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(hdr); err != nil {
|
if err := tw.WriteHeader(hdr); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -400,9 +404,10 @@ func outputKernelInitrdTarball(base string, kernel []byte, initrd []byte, cmdlin
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
hdr = &tar.Header{
|
hdr = &tar.Header{
|
||||||
Name: "initrd.img",
|
Name: "initrd.img",
|
||||||
Mode: 0644,
|
Mode: 0644,
|
||||||
Size: int64(len(initrd)),
|
Size: int64(len(initrd)),
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(hdr); err != nil {
|
if err := tw.WriteHeader(hdr); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -411,9 +416,10 @@ func outputKernelInitrdTarball(base string, kernel []byte, initrd []byte, cmdlin
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
hdr = &tar.Header{
|
hdr = &tar.Header{
|
||||||
Name: "cmdline",
|
Name: "cmdline",
|
||||||
Mode: 0644,
|
Mode: 0644,
|
||||||
Size: int64(len(cmdline)),
|
Size: int64(len(cmdline)),
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(hdr); err != nil {
|
if err := tw.WriteHeader(hdr); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -423,9 +429,10 @@ func outputKernelInitrdTarball(base string, kernel []byte, initrd []byte, cmdlin
|
|||||||
}
|
}
|
||||||
if len(ucode) != 0 {
|
if len(ucode) != 0 {
|
||||||
hdr := &tar.Header{
|
hdr := &tar.Header{
|
||||||
Name: "ucode.cpio",
|
Name: "ucode.cpio",
|
||||||
Mode: 0644,
|
Mode: 0644,
|
||||||
Size: int64(len(ucode)),
|
Size: int64(len(ucode)),
|
||||||
|
Format: tar.FormatPAX,
|
||||||
}
|
}
|
||||||
if err := tw.WriteHeader(hdr); err != nil {
|
if err := tw.WriteHeader(hdr); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -454,6 +461,7 @@ func outputKernelSquashFS(image, base string, filesystem io.Reader) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
thdr.Format = tar.FormatPAX
|
||||||
switch {
|
switch {
|
||||||
case thdr.Name == "boot/kernel":
|
case thdr.Name == "boot/kernel":
|
||||||
kernel, err := ioutil.ReadAll(tr)
|
kernel, err := ioutil.ReadAll(tr)
|
||||||
|
Loading…
Reference in New Issue
Block a user