-
Notifications
You must be signed in to change notification settings - Fork 603
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
Dockerfile upgrade #1541
Dockerfile upgrade #1541
Conversation
* Use alpine:3.13 as base image for multi-arch build of dockerfile * Maintain *-dev packages through installation of multiqc (for packages without pre-compiled binaries (i.e kiwisolver) * Added non-root USER for safer container invocation * Moved from entrypoint to CMD for CWL conformance.
* Updated docker file to have continuous commentary and delete the source directory * Updated to alpine 3.15 and install wheel through apk instead.
cb277e0
to
3bb6fa3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this - looks good, couple of minor questions but otherwise no problems.
Out of curiosity, does the final image size end up being about the same?
Would also be nice to check for a couple of other bonus packages if we're building everything ourselves. For example, ps
for Nextflow if it's not already there..
Also, remove the default CMD and update the docs.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, I can't get it to build locally - not sure if I broke something or if it was problematic from the start (I'm on a MacBook M1, so docker can have issues sometimes).
Could try adding --prefer-binary
from the docs you linked maybe? Bedtime for me..
Ok, it builds ok on GitPod 🎉 I's a fair bit bigger though, half the size again:
Would be nice to try to trim it down a little more, though it's not super important. It would be cool to set up automated multi-arch builds! This blog post makes it sound very doable.. |
It would also be nice to use a multi-stage build instead of the huge chained run commands. |
ok, I messed around with a few ideas and ended up with #1836 which uses one of the official Python base images. This still ends up bigger than the existing image, but by a smaller margin:
I think I prefer this as going directly from Python feels a bit simpler and hopefully more robust. It's still a multi-arch base image, so can hopefully still set up multi-arch MultiQC images. What do you think @alexiswl? |
This looks great! |
Multi-arch effort started in #1837 |
docker buildx
like so on a docker swarm running on multiple platforms:docker buildx build --platform linux/amd64,linux/arm64 --progress plain --push --tag ewels/multiqc:latest .
CHANGELOG.md
has been updated