summaryrefslogtreecommitdiff
path: root/libpod/runtime.go
diff options
context:
space:
mode:
Diffstat (limited to 'libpod/runtime.go')
-rw-r--r--libpod/runtime.go16
1 files changed, 15 insertions, 1 deletions
diff --git a/libpod/runtime.go b/libpod/runtime.go
index 20ae2c6fe..afde03904 100644
--- a/libpod/runtime.go
+++ b/libpod/runtime.go
@@ -77,7 +77,7 @@ var (
StorageConfig: storage.StoreOptions{},
ImageDefaultTransport: DefaultTransport,
StateType: SQLiteStateStore,
- RuntimePath: "/usr/bin/runc",
+ RuntimePath: findRuncPath(),
ConmonPath: findConmonPath(),
ConmonEnvVars: []string{
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
@@ -101,6 +101,15 @@ func findConmonPath() string {
return path
}
+func findRuncPath() string {
+ path := "/usr/bin/runc"
+ _, err := os.Stat(path)
+ if err != nil {
+ path = "/usr/sbin/runc"
+ }
+ return path
+}
+
// NewRuntime creates a new container runtime
// Options can be passed to override the default configuration for the runtime
func NewRuntime(options ...RuntimeOption) (runtime *Runtime, err error) {
@@ -117,6 +126,11 @@ func NewRuntime(options ...RuntimeOption) (runtime *Runtime, err error) {
}
}
+ // Check for the existence of the runc binary
+ if _, err := os.Stat(runtime.config.RuntimePath); err != nil {
+ return nil, errors.Errorf("unable to find runc binary %s", runtime.config.RuntimePath)
+ }
+
// Set up containers/storage
store, err := storage.GetStore(runtime.config.StorageConfig)
if err != nil {