Singularity pull fmriprep: "Could not obtain the container size"

I thought I have asked before but can’t find and forgot details if I did…

*$> singularity --verbose pull docker://poldracklab/fmriprep
Increasing verbosity level (2)
Singularity version: 2.3.1-dist
Exec'ing: /usr/lib/x86_64-linux-gnu/singularity/cli/pull.exec
VERBOSE Docker image: poldracklab/fmriprep
VERBOSE Registry:
VERBOSE Namespace: poldracklab
VERBOSE Repo Name: fmriprep
VERBOSE Repo Tag: latest
VERBOSE Version: None
VERBOSE Obtaining tags:
VERBOSE Obtaining manifest:
ERROR: Could not obtain the container size, try using --size
ABORT: Aborting with RETVAL=255

$> wget -O-
--2017-08-07 15:06:30--
Resolving (,,
Connecting to (||:443... connected.
HTTP request sent, awaiting response... 401 Unauthorized

Username/Password Authentication Failed.

so those aren’t public??

Below is the relevant error

For some reasons Docker Hub API does not expose the size of the Docker images we push to it. This means that you have to specify it manually to Singularity using the --size argument. It should be set to 14-15Gb as far as I remember.

However, even with the size set you might still run into troubles running the container due to an unresolved bug in Singularity concerning Python wheel files. Until this is resolved using docker2singularity remains the most reliable way of running FMRIPREP with Singularity.

@ChrisGorgolewski - could you build the base image with neurodocker? that will then allow for singularity compatibility at least till some of these issues are resolved. also docker images created with version 2 of the api does support size of docker images. we did pull this directly from docker: singularity pull satra/nih-workshop-2017

re neurodocker: I think it would be easier to add the following lines to our dockerfile: (although I still don’t understand how this fix works)

re api v2: since we are pushing versioned images from circleci we have to wait until we switch to CircleCI 2.0 to be able to access newer version of docker