I often run one-off commands on the image to debug them, e.g.
docker run --rm aiidalab/full-stack:edge pip show aiida-core
I noticed that since we upgraded to Python 3.12 image, the container first goes through the whole startup sequence (including all the added AiiDAlab services) and only then executes the command, which is very annoying.
The workaround is to override the entrypoint like so
docker run --rm --entrypoint bash aiidalab/full-stack:edge -c "pip show aiida-core"
(notice the extra -c and quoting)
At the very least we should document this in README, and perhaps consider overriding the ENTRYPOINT to go back to the previous behaviour? Not sure what the implications would be.
Here's a good primer about a differences between RUN, CMD and ENTRYPOINT:
https://www.docker.com/blog/docker-best-practices-choosing-between-run-cmd-and-entrypoint/
I often run one-off commands on the image to debug them, e.g.
I noticed that since we upgraded to Python 3.12 image, the container first goes through the whole startup sequence (including all the added AiiDAlab services) and only then executes the command, which is very annoying.
The workaround is to override the entrypoint like so
(notice the extra
-cand quoting)At the very least we should document this in README, and perhaps consider overriding the ENTRYPOINT to go back to the previous behaviour? Not sure what the implications would be.
Here's a good primer about a differences between
RUN,CMDandENTRYPOINT:https://www.docker.com/blog/docker-best-practices-choosing-between-run-cmd-and-entrypoint/