Docker: SPM and its toolboxes

I have been toying with the idea of producing a fully reproducible pipeline of an old analysis of mine using a docker and the whole shebang.
My problem is that it was done with not only an older version of SPM that one currently available with docker but also that I used some toolboxes that cannot be used witht the stand alone version of SPM (unless I recompile the whole thing).
Was wondering if “it makes sense” / “it would be worth” / “anyone has tried” to make docker with octave + SPM + 1 or more toolboxes?

Any thoughts ?

1 Like

Hi @Remi-Gau,

A Dockerfile for the latest version of SPM12 (with the MATLAB Runtime) is available [1] and a convenient way to create a Docker image for any SPM12 release is to use [2] thanks to all the work from Jakub [3]

There is also a Dockerfile for SPM12 and Octave [4] but it is unlikely to work with anything but the latest SPM12 and Octave versions and it is still very much work in progress.

Images from both are available from Docker Hub [5].

Now, you mention extra toolboxes (from SPM or MATLAB?) so, yes, recompilation would be required in order to use the MATLAB Runtime. It depends on the extra piece of code you want to use but it should be feasible… I’m happy to help if you go down that route.

Best,
Guillaume.

[1] https://github.com/spm/spm-docker/blob/master/matlab/Dockerfile
[2] https://github.com/kaczmarj/neurodocker

1 Like

[3] https://github.com/kaczmarj
[4] https://github.com/spm/spm-docker/blob/master/octave/Dockerfile

(sorry the system does not allow me to post more than two links at a time).

1 Like

[5] https://hub.docker.com/r/spmcentral/spm/

1 Like

Hey Guillaume,

Thanks for the reply.

I had started playing around with neurodocker when I sent that question: I was trying to create a docker with octave and an uncompiled version of SPM so that I could add an SPM toolbox (ArtRepair). But I had not seen the octave+SPM12 docker.

I think that I can work with SPM12 and not SPM8 (avtually curious to see how big the differences would be to my original results). So if I am not mistake it looks like adapting the octave/SPM12 recipe [1] to just download the toolbox in the /opt/spm12/toolbox would be the way to go, no?

@+

Remi

[1] https://github.com/spm/spm-docker/blob/master/octave/Dockerfile