kaczmarj / ANTs-builds

Dockerfile to build ANTs from source
6 stars 1 forks source link
ants docker medical-imaging neuroimaging registration

ANTs-builds

Building Docker images of various versions of ANTs from source. Images are hosted on https://hub.docker.com/r/kaczmarj/ants/.

This repository is used by kaczmarj/neurodocker.

Because the installation procedure is the same for most versions of ANTs, a single Dockerfile is used to build multiple versions of ANTs.

Available binaries

Compiled on CentOS 6.10 Docker image, with the following:

Building ANTs

The following is the command used to build ANTs. Replace $ants_version necessary.

ants_version=v2.2.0

docker build -t ants:$ants_version \
--build-arg ants_version=$ants_version - < Dockerfile \
| tee logs/ANTs-Linux-centos6_x86_64-v${ants_version}.log

Getting the binaries

The binaries can be pulled out of the Docker image by attaching a directory on the local machine to /tmp/ants and moving the contents of /opt/ants to /tmp/ants:

$ docker run --rm -v /path/to/local/ants:/tmp/ants ants:2.2.0 mv /opt/ants /tmp/ants

The binaries can be compressed before extracting to the local machine:

docker run --rm -v /home/ants:/tmp/ants-tar kaczmarj/ants:2.2.0 \
/bin/tar czvf /tmp/ants-tar/ants.tar.gz -C /opt ants

Known issues

If you cannot run the centos:6 Docker image, the problem could be due to a Linux kernel setting. On a Debian 10 machine, I need to make the following changes before being able to run the centos:6 image (and build the Dockerfile in this project).

sudo vim /etc/default/grub
# Add 'vsyscall=emulate' to `GRUB_CMDLINE_LINUX_DEFAULT` variable.
sudo update-grub
# Reboot

To undo the above changes, remove vsyscall=emulate, run sudo update-grub, and reboot.