We are running Dynare in a cloud environment, in support of reproducibility (https://sivacor.org). We have made the choice of using “well-known” Docker images only, thus the inclusion of the “dynare/dynare” images. They usually work great, but: they are very big.
One source of the size is GPU (cuda) libraries. The other are latex packages.
I wonder if it would be possible to have additional GPU-less and latex-less packages created. I have pursued a similar strategy for packaging Stata (see the containers at dataeditors), which is relatively painless to do. Glad to help.
This would in particular be useful for CI-based workflows as well (one of your reasons for having the containers in the first place), since it would significantly reduce the size that needs to be transferred, and speed up the process.
One conceivable structure would be to have dynare/dynare as the full image as currently (for backward compatibility, not change any existing workflows), dynare/dynare-small for the CPU-only, latex-less base image, and dynare/dynare-gpu as the GPU, latex-less build. You could, for completeness of the name space, have a dynare/dynare-complete that corresponds to the current dynare/dynare (costless tagging)