aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-06-22 19:10:49 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-06-22 19:13:38 +0200
commit67ce863533e527268c6353ad0287d8dc3bf2fed5 (patch)
treecf8175837993a087d70c629bbc2e381b49bf4cf3 /pkg
parent39a5713d72c6a3636eddd40d1ad2063b21299cae (diff)
pkg/build: save kernel config for gvisor
gvisor does not use it, but save it verbatim. This can be useful to keep some additional description of the build.
Diffstat (limited to 'pkg')
-rw-r--r--pkg/build/gvisor.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/pkg/build/gvisor.go b/pkg/build/gvisor.go
index b96d55cf0..7b7748f17 100644
--- a/pkg/build/gvisor.go
+++ b/pkg/build/gvisor.go
@@ -4,6 +4,7 @@
package build
import (
+ "fmt"
"path/filepath"
"time"
@@ -17,13 +18,18 @@ func (gvisor) build(targetArch, vmType, kernelDir, outputDir, compiler, userspac
if err := osutil.MkdirAll(outputDir); err != nil {
return err
}
- if _, err := osutil.RunCmd(20*time.Minute, kernelDir, compiler, "build", "--verbose_failures", "--sandbox_debug", "runsc"); err != nil {
+ if _, err := osutil.RunCmd(20*time.Minute, kernelDir, compiler, "build", "--verbose_failures", "runsc"); err != nil {
return err
}
runsc := filepath.Join(kernelDir, "bazel-bin", "runsc", "linux_amd64_pure_stripped", "runsc")
if err := osutil.CopyFile(runsc, filepath.Join(outputDir, "image")); err != nil {
return err
}
+ if len(config) != 0 {
+ if err := osutil.WriteFile(filepath.Join(outputDir, "kernel.config"), config); err != nil {
+ return fmt.Errorf("failed to save kernel config: %v", err)
+ }
+ }
osutil.RunCmd(10*time.Minute, kernelDir, compiler, "shutdown")
return nil
}