-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Increase flexibility in use of Dockerfile within Wave #4
Comments
Hi Marco, understand your requirement. Between these choices, I'd go with an explicit the declaration in the config file adding:
Then this file is used unless another is found at the module level. Other points to refine:
|
As I was mentioning to you in our chat, Paolo, I think of multi-arch builds in many respects:
With this in mind, the most flexible way is probably to have support for multiple Dockerfiles with
|
What it could be done is that When However, to keep the fucos on this issue, my main struggle how it should be handled the behavior of
|
Before commenting on your last comment, let me share something that may be useful for arch determination: https://github.com/archspec/archspec I believe this is the tool that Spack uses (or, if not, they are closely related). |
It sounds to me like option 3. can be useful when a pipeline developer wants to overwrite the modules default Dockerfiles. However, is this a reasonable use case? I would probably start with option 1. to keep things simple, and implement 3. if the need arises. |
On this thread, so do you think that there should be no option to have process-specific |
Now that you are mentioning, what could be possible to do is to use the existing |
I tend to agree, where I get confused is what name to use in the About archspec, interesting but let's keep this on #3 otherwise there's too much stuff in this thread 😄 |
it could be something like |
Now that you are mentioning, what could be possible to do is to use the existing container directive and allow the use of a Dockerfile/Containerfile file path instead of a container name. Tho not 100% about this. What I am doubtful about in this scenario is some possible perceived inconsistency in user experience, which can make it confusing. Now, you suggest to use So back to having a process directive, similar to So you would have Ultimately, I think that what would solve this is to define the dockerfile path using a |
I'd resist the idea of adding a specific directive for Wave, both to avoid the proliferation of directives and also because a directive should capture a general concept. Instead this looks related to a specific plugin. I still think it could be used the existing In the alternative, it could be added a |
Thanks for following up on this, Paolo. The shortcoming I see in a Wave specific option, i.e. I also appreciate your concern about non-generality of the feature. This is why I called it If my minor follow-up still did not convince you, I am generally on board with your suggestion of a specific syntax for On non-proliferation, I feel I have no word, you have the last word :-) What do you think? |
I believe the use of Let's try to estimate the impact of this change before implementing it. |
Sure, let me start with a couple of aspects I can think of. 1- Possible syntax for the updated Container syntax:
This is to say that colon and slashes cannot be used to discriminate between container URI and Dockerfile path, because they may or may not be there.
2- syntax for Wave strategy Thoughts? |
Regarding the syntax we can assume the file path should start with regarding the second point, I'd argue that's still consistent because the dockerfile is specified via the |
Sounds good. |
Relative paths can create ambiguity with image names. We have these choices
|
personally, I prefer option 2., flexible and simple |
so .. is this a green light to implement? :-) |
yeah, I agree 2 is the best option. Ok, let's see what happens .. :D |
[update] yesterday @pditommaso closed #3916 |
Hi @pditommaso , as per our thread a few days ago.
Right now, the main ways to instruct Nextflow/Wave to build containers are:
conda
package manager +wave
combo, with lots of flexibility (with/without NF modules, per process conda env, one conda env for whole workflow...)Dockerfile
+wave
, which only work with NF modulesRegarding point 2., I believe there is room for simple solutions that expand flexibility and hence user cases. I am thinking of users/workflows with the following features:
So, I was wondering about the following features:
process.container
orprocess.conda
.. something likeprocess.dockerfile
orwave.dockerfile
The text was updated successfully, but these errors were encountered: