vsoch / scif

scientific filesystem: a filesystem organization for scientific software and metadata
https://sci-f.github.io/
Mozilla Public License 2.0
30 stars 13 forks source link

`scif run myapp -h` triggers the scif help #53

Closed bilke closed 5 years ago

bilke commented 5 years ago

As noted in https://github.com/NVIDIA/hpc-container-maker/pull/136#issuecomment-476816515 a scif run myapp parameter -h (or --help) does not get passed to myapp but instead triggers scif run -h:

myapp += runscript(commands=['ls "$@"'])
...
docker run mycontainer scif run myapp -lh /      # works
docker run mycontainer scif run myapp -l -h /    # does not work
docker run mycontainer scif run myapp -- -l -h / # works
vsoch commented 5 years ago

Hey @bilke! I’ll put in some time to fix this up for you later today. Stay tuned!

bilke commented 5 years ago

@vsoch Sorry but here comes another (maybe unrelated) issue: Is it possible that scif exec is broken at the moment?

➜ docker run vanessa/scif:hw exec hello-world-env echo "Another hello"
[hello-world-env] executing /bin/bash /scif/apps/hello-world-env/scif/runscript

It should not execute the runscript but print "Another hello" right?

vsoch commented 5 years ago

okay some quick feedback. For these examples:

docker run mycontainer scif run myapp -lh /      # works
docker run mycontainer scif run myapp -l -h /    # does not work
docker run mycontainer scif run myapp -- -l -h / # works

Since you are running "myapp" the assumption here is that myapp has a runscript that knows how to parse those arguments. Are you saying that it does have a runscript, but scif is essentially blocking them from going through?) If you are able to give me the recipe for mycontainer so I can take a look, that would be very helpful. Note that the command to ask for help for an app isn't with "run" it's with help:

docker run mycontainer scif help myapp

as an example:

$ docker run -it vanessa/scif:hw help hello-world-env
   This is the help section for hello-world-env! This app
   does not have anything other than an environment installed. 
   It just defines the environment variable `OMG=TACOS`. Try issuing
   a command to the scif entrypoint to echo this variable:
        scif exec hello-world-env echo [e]OMG
        docker run vanessa/scif exec hello-world-env echo [e]OMG
        [hello-world-env] executing /bin/echo $OMG
        TACOS

Looking into the exec issue now!

vsoch commented 5 years ago

okay I think I found the bug and I have a fix - there are a few more tweaks I want to do before opening a PR. Will you be okay to wait on the fix until the afternoon?

vsoch commented 5 years ago

Okay, I think I fixed the execute issue! I haven't opened the PR yet, but here is the fixed functionality:

$ docker run -it vanessa/scif:hw exec hello-world-env echo "Hello"
[hello-world-env] executing /bin/echo Hello
Hello

I'm going to try and reproduce the issues with run.

vsoch commented 5 years ago

I have a PR with fixes just opened if you care to test! https://github.com/vsoch/scif/pull/55 The container vanessa/scif:hw is updated with this fixed version, so you could try that container directly (vanessa/scif base isn't updated yet).