mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2024-11-26 05:49:58 +00:00
239b6d3739
This change enables the experimental mode of the NVIDIA Container Runtime. If enabled, the nvidia-container-runtime.discover-mode config option is queried to determine how required OCI spec modifications should be defined. If "legacy" is selected, the existing NVIDIA Container Runtime hooks is discovered and injected into the OCI spec. Signed-off-by: Evan Lezar <elezar@nvidia.com>
47 lines
1022 B
Go
47 lines
1022 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
|
|
"github.com/NVIDIA/nvidia-container-toolkit/internal/config"
|
|
)
|
|
|
|
var logger = NewLogger()
|
|
|
|
func main() {
|
|
err := run(os.Args)
|
|
if err != nil {
|
|
logger.Errorf("Error running %v: %v", os.Args, err)
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
// run is an entry point that allows for idiomatic handling of errors
|
|
// when calling from the main function.
|
|
func run(argv []string) (rerr error) {
|
|
cfg, err := config.GetRuntimeConfig()
|
|
if err != nil {
|
|
return fmt.Errorf("error loading config: %v", err)
|
|
}
|
|
|
|
err = logger.LogToFile(cfg.DebugFilePath)
|
|
if err != nil {
|
|
return fmt.Errorf("error opening debug log file: %v", err)
|
|
}
|
|
defer func() {
|
|
// We capture and log a returning error before closing the log file.
|
|
if rerr != nil {
|
|
logger.Errorf("Error running %v: %v", argv, rerr)
|
|
}
|
|
logger.CloseFile()
|
|
}()
|
|
|
|
runtime, err := newNVIDIAContainerRuntime(logger.Logger, cfg, argv)
|
|
if err != nil {
|
|
return fmt.Errorf("failed to create NVIDIA Container Runtime: %v", err)
|
|
}
|
|
|
|
return runtime.Exec(argv)
|
|
}
|