RFC: inline Dockerfiles for simple images #406
Replies: 11 comments 4 replies
-
I like this |
Beta Was this translation helpful? Give feedback.
-
This would require a syntax change, to allow multi-line strings with the An alternative for inline dockerfile would be a
Yet another alternative would be an object value with specific keys to make it more clear what's allowed:
|
Beta Was this translation helpful? Give feedback.
-
@mlin thanks alot for the suggestion! This actually seems like a really great addition TBH. There is one problem with this approach though. In 2.0 the Adding inline support for just docker goes a little against the grain of the runtime overhaul. Is there any way we can make this more generic? |
Beta Was this translation helpful? Give feedback.
-
What about an object value instead:
This way, we don't need a separate This is more flexible because there might be other information we want to put into the docker image, and other container formats might require additional information. |
Beta Was this translation helpful? Give feedback.
-
Just wanted to add a +1 on this. Inline Dockerfiles would make it much easier for us to manage some of our workflow distribution and versioning mechanisms. |
Beta Was this translation helpful? Give feedback.
-
+1 as well
…On Mon, Mar 1, 2021 at 1:35 PM Andrey Kislyuk ***@***.***> wrote:
Just wanted to add a +1 on this. Inline Dockerfiles would make it much
easier for us to manage some of our workflow distribution and versioning
mechanisms.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#406 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AO4PJP7WKRMY6D3R6XPVNLLTBPUA3ANCNFSM4SWAH24Q>
.
--
Lynn Langit
714.267.5966 (CST time zone)
|
Beta Was this translation helpful? Give feedback.
-
Coming back to this - since multi-line strings are about to be approved, Also wanted to note the addition of a similar feature to NextFlow (along with an accompanying service to build and manage inline Dockerfiles): https://www.nextflow.io/blog/2022/rethinking-containers-for-cloud-native-pipelines.html |
Beta Was this translation helpful? Give feedback.
-
I wonder what the requirement for engines will be. IE will all engines in all environments NEED to support this feature or is it an opt in feature of the language |
Beta Was this translation helpful? Give feedback.
-
It should be possible to specify either/both a Regarding @mlin earlier comment of fully baking
|
Beta Was this translation helpful? Give feedback.
-
@mlin it seems like there's enough support for this to propose a PR if you're up for writing it up. |
Beta Was this translation helpful? Give feedback.
-
I think |
Beta Was this translation helpful? Give feedback.
-
This is a feature I've wanted for a long time to reduce dev/maintenance overhead; looking for comments on my rough implementation! CWL has something similar,
DockerRequirement::dockerFile
Motivation: sometimes / fairly often, a WDL task just depends on a combination of tools which can each be installed through apt/conda/etc. In these simple cases, it's a chore to build a custom docker image and keep it public & up-to-date. Instead we see authors piling stuff into monolithic images to be shared across many tasks (to amortize the chore), or else installing packages at runtime (which makes things slower & more prone to random failures).
Proposed solution: As an optional alternative to the
runtime.docker
field, admit aruntime.inlineDockerfile
field with anArray[String]
supplying the text lines of a "simple" Dockerfile associated with the task. Then the engine assumes responsibility to execute the task command using an image built from that Dockerfile.Example:
Details:
runtime.docker
and maintain/publish their docker images in the usual waysdocker build
, relying on its built-in caching featuresBeta Was this translation helpful? Give feedback.
All reactions