Closed JohannesWiesner closed 1 year ago
FYI I confirm I can reproduce this
the problem is in the COPY instruction. the path is being split into a tuple of strings. i am guessing the cause of this is using tuple("environment.yml /tmp/")
. could be related to https://github.com/ReproNim/neurodocker/pull/492 (this commit https://github.com/ReproNim/neurodocker/pull/492/commits/714c5de00a7a98fce9ae7114610fa87b8609cb8d).
indeed the --copy
command line is an OptionEatAll
subclass, so using tuple
in that implementation is likely causing this behavior. when this is fixed, we should also add a test of this use case. i could have sworn we had a test that copies files but perhaps not.
Step 10/22 : COPY ["(", "'", "e", "n", "v", "i", "r", "o", "n", "m", "e", "n", "t", "-", "s", "h", "o", "r", "t", ".", "y", "m", "l", "'", ",", " ", "'", "/", "t", "m", "p", "/", "'", ")"]
was adding a regression test in a branch. want to open a PR to keep track of this?
indeed it would be good to add a regression test. i had hoped it would have been caught by the current tests.
perhaps its truly time to refactor the optionseatall class a bit to be click 8 compliant.
added a very very simple test in #499
perhaps its truly time to refactor the optionseatall class a bit to be click 8 compliant.
i can ask a stack overflow question to get the attention of click gurus :) one in particular has been especially helpful in the past.
i am debugging this now and the error appears to be coming from https://github.com/ReproNim/neurodocker/blob/4f1cd1493005dc07b19d7b78de62191d5ced24cc/neurodocker/cli/generate.py#L326
i am working on fixing this
it seems like value
is a string at this point...
@JohannesWiesner - can you please try with neurodocker 0.9.4? the issue should be fixed now. please reopen if it is not.
@kaczmarj - Works like a charm now, much appreciated!
We are using this code to produce a Dockerfile (Note that Dockerfile needs
example-env.yml
to successfully build the image as found in our repo). Creating the Dockerfile works fine but the building process stops with the following error when usingrepronim/neurodocker:0.9.2
orrepronim/neurodocker:0.9.3
(withrepronim/neurodocker:0.9.1
everything works fine):