projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
19094: Note docker/singularity/arv-mount versions in container log.
[arvados.git]
/
lib
/
crunchrun
/
singularity.go
diff --git
a/lib/crunchrun/singularity.go
b/lib/crunchrun/singularity.go
index 942de4300e087a95306fc2de1d20288535581a67..879c46c8989612913b3474ebddcb88b9be5bb122 100644
(file)
--- a/
lib/crunchrun/singularity.go
+++ b/
lib/crunchrun/singularity.go
@@
-37,7
+37,13
@@
func newSingularityExecutor(logf func(string, ...interface{})) (*singularityExec
}, nil
}
}, nil
}
-func (e *singularityExecutor) Runtime() string { return "singularity" }
+func (e *singularityExecutor) Runtime() string {
+ buf, err := exec.Command("singularity", "--version").CombinedOutput()
+ if err != nil {
+ return "singularity (unknown version)"
+ }
+ return strings.TrimSuffix(string(buf), "\n")
+}
func (e *singularityExecutor) getOrCreateProject(ownerUuid string, name string, containerClient *arvados.Client) (*arvados.Group, error) {
var gp arvados.GroupList
func (e *singularityExecutor) getOrCreateProject(ownerUuid string, name string, containerClient *arvados.Client) (*arvados.Group, error) {
var gp arvados.GroupList
@@
-288,10
+294,10
@@
func (e *singularityExecutor) execCmd(path string) *exec.Cmd {
// Singularity always makes all nvidia devices visible to the
// container. If a resource manager such as slurm or LSF told
// us to select specific devices we need to propagate that.
// Singularity always makes all nvidia devices visible to the
// container. If a resource manager such as slurm or LSF told
// us to select specific devices we need to propagate that.
-
for _, s := range os.Environ()
{
- if strings.HasPrefix(s, "CUDA_VISIBLE_DEVICES=") {
- env = append(env, "SINGULARITYENV_"+s)
- }
+
if cudaVisibleDevices := os.Getenv("CUDA_VISIBLE_DEVICES"); cudaVisibleDevices != ""
{
+ // If a resource manager such as slurm or LSF told
+ // us to select specific devices we need to propagate that.
+ env = append(env, "SINGULARITYENV_CUDA_VISIBLE_DEVICES="+cudaVisibleDevices)
}
args = append(args, e.imageFilename)
}
args = append(args, e.imageFilename)