@@ -297,10 +297,9 @@ func Install(cli *cli.Context, opts *Options, toolkitRoot string) error {
297297 log .Errorf ("Ignoring error: %v" , fmt .Errorf ("error removing toolkit directory: %v" , err ))
298298 }
299299
300- toolkitConfigDir := filepath .Join (toolkitRoot , ".config" , "nvidia-container-runtime" )
301- toolkitConfigPath := filepath .Join (toolkitConfigDir , configFilename )
300+ toolkitConfigFilePath := filepath .Join (toolkitRoot , ".config" , config .RelativeFilePath )
302301
303- err = createDirectories (toolkitRoot , toolkitConfigDir )
302+ err = createDirectories (toolkitRoot , filepath . Dir ( toolkitConfigFilePath ) )
304303 if err != nil && ! opts .ignoreErrors {
305304 return fmt .Errorf ("could not create required directories: %v" , err )
306305 } else if err != nil {
@@ -314,7 +313,7 @@ func Install(cli *cli.Context, opts *Options, toolkitRoot string) error {
314313 log .Errorf ("Ignoring error: %v" , fmt .Errorf ("error installing NVIDIA container library: %v" , err ))
315314 }
316315
317- err = installContainerRuntimes (toolkitRoot , opts . DriverRoot )
316+ err = installContainerRuntimes (toolkitRoot , toolkitConfigFilePath )
318317 if err != nil && ! opts .ignoreErrors {
319318 return fmt .Errorf ("error installing NVIDIA container runtime: %v" , err )
320319 } else if err != nil {
@@ -328,7 +327,7 @@ func Install(cli *cli.Context, opts *Options, toolkitRoot string) error {
328327 log .Errorf ("Ignoring error: %v" , fmt .Errorf ("error installing NVIDIA container CLI: %v" , err ))
329328 }
330329
331- nvidiaContainerRuntimeHookPath , err := installRuntimeHook (toolkitRoot , toolkitConfigPath )
330+ nvidiaContainerRuntimeHookPath , err := installRuntimeHook (toolkitRoot , toolkitConfigFilePath )
332331 if err != nil && ! opts .ignoreErrors {
333332 return fmt .Errorf ("error installing NVIDIA container runtime hook: %v" , err )
334333 } else if err != nil {
@@ -349,7 +348,7 @@ func Install(cli *cli.Context, opts *Options, toolkitRoot string) error {
349348 log .Errorf ("Ignoring error: %v" , fmt .Errorf ("error installing NVIDIA Container CDI Hook CLI: %v" , err ))
350349 }
351350
352- err = installToolkitConfig (cli , toolkitConfigPath , nvidiaContainerCliExecutable , nvidiaCTKPath , nvidiaContainerRuntimeHookPath , opts )
351+ err = installToolkitConfig (cli , toolkitConfigFilePath , nvidiaContainerCliExecutable , nvidiaCTKPath , nvidiaContainerRuntimeHookPath , opts )
353352 if err != nil && ! opts .ignoreErrors {
354353 return fmt .Errorf ("error installing NVIDIA container toolkit config: %v" , err )
355354 } else if err != nil {
@@ -423,8 +422,8 @@ func installLibrary(libName string, toolkitRoot string) error {
423422
424423// installToolkitConfig installs the config file for the NVIDIA container toolkit ensuring
425424// that the settings are updated to match the desired install and nvidia driver directories.
426- func installToolkitConfig (c * cli.Context , toolkitConfigPath string , nvidiaContainerCliExecutablePath string , nvidiaCTKPath string , nvidaContainerRuntimeHookPath string , opts * Options ) error {
427- log .Infof ("Installing NVIDIA container toolkit config '%v'" , toolkitConfigPath )
425+ func installToolkitConfig (c * cli.Context , toolkitConfigFilePath string , nvidiaContainerCliExecutablePath string , nvidiaCTKPath string , nvidaContainerRuntimeHookPath string , opts * Options ) error {
426+ log .Infof ("Installing NVIDIA container toolkit config '%v'" , toolkitConfigFilePath )
428427
429428 cfg , err := config .New (
430429 config .WithConfigFile (nvidiaContainerToolkitConfigSource ),
@@ -433,7 +432,7 @@ func installToolkitConfig(c *cli.Context, toolkitConfigPath string, nvidiaContai
433432 return fmt .Errorf ("could not open source config file: %v" , err )
434433 }
435434
436- targetConfig , err := os .Create (toolkitConfigPath )
435+ targetConfig , err := os .Create (toolkitConfigFilePath )
437436 if err != nil {
438437 return fmt .Errorf ("could not create target config file: %v" , err )
439438 }
@@ -579,17 +578,15 @@ func installContainerCLI(toolkitRoot string) (string, error) {
579578func installRuntimeHook (toolkitRoot string , configFilePath string ) (string , error ) {
580579 log .Infof ("Installing NVIDIA container runtime hook from '%v'" , nvidiaContainerRuntimeHookSource )
581580
582- argLines := []string {
583- fmt .Sprintf ("-config \" %s\" " , configFilePath ),
584- }
585-
586581 e := executable {
587582 source : nvidiaContainerRuntimeHookSource ,
588583 target : executableTarget {
589584 dotfileName : "nvidia-container-runtime-hook.real" ,
590585 wrapperName : "nvidia-container-runtime-hook" ,
591586 },
592- argLines : argLines ,
587+ env : map [string ]string {
588+ config .FilePathOverrideEnvVar : configFilePath ,
589+ },
593590 }
594591
595592 installedPath , err := e .install (toolkitRoot )
0 commit comments