nf-core / rnaseq

RNA sequencing analysis pipeline using STAR, RSEM, HISAT2 or Salmon with gene/isoform counts and extensive quality control.
https://nf-co.re/rnaseq
MIT License
888 stars 702 forks source link

-profile singularity requires Docker #249

Closed ghost closed 5 years ago

ghost commented 5 years ago

When running nextflow run nf-core/rnaseq -profile singularity I get the following error message:

Pulling Singularity image docker://nf-core/rnaseq [cache /home-Pharnext/data/alex/rnaseq/work/singularity/nf-core-rnaseq.img]
ERROR ~ Error executing process > 'output_documentation (1)'

Caused by:
  Failed to pull singularity image
  command: singularity pull  --name nf-core-rnaseq.img docker://nf-core/rnaseq > /dev/null
  status : 255
  message:
    [34mINFO:    Starting build...
    FATAL:   Unable to pull docker://nf-core/rnaseq: conveyor failed to get: Error reading manifest latest in docker.io/nf-core/rnaseq: errors:
    denied: requested access to the resource is denied
    unauthorized: authentication required

The only fix I know requires docker login but this wouldn't make sense since as the doc precisely states the whole point of using singularity is not having docker available (and not wanting or being able to install it) and therefore not being able to run a docker command in order to use singularity.

apeltzer commented 5 years ago

Did you already login using docker once on that machine?

docker logout should help in such a case.

ghost commented 5 years ago

docker is not installed on the machine, anything with $ docker such as login, logout returns: command not found and I am pretty sure It was never installer, therefore probably not a path problem

apeltzer commented 5 years ago

Which version of the pipeline are you using?

I'm asking because that here doesn't pull from the correct Docker Hub URL,

docker://nf-core/rnaseq

which should be:

docker://nfcore/rnaseq
ghost commented 5 years ago

nf-core/rnaseq v1.3 via Nextflow 19.04.1

apeltzer commented 5 years ago

Can you post a full command line and how you pulled the version?

ghost commented 5 years ago

For pulling, I forked then:

$ git clone https://github.com/Al3xEP/rnaseq

# I prefer to work with gitlab, so I did a
$ cd rnaseq
$ git remote rm origin
$ git remote add nfcore-rnaseq https://gitlab.com/Al3xEP/nfcore-rnaseq.git
$ git push nfcore-rnaseq master

# Then on another machine (my HPC) 
$ git clone https://gitlab.com/Al3xEP/nfcore-rnaseq.git

# Then, having my fastq.gz files in the same parent directory as the one where I cloned the nfcore-rnaseq subdirectory, did a 
$ nextflow run nfcore-rnaseq/ --reads 'rnaseqreads/*.fastq.gz' --genome GRCm38 -profile singularity --singleEnd 

I also did change the base.config file by adding:

process.executor = 'SLURM'
singularity.enabled = true
process.container = "nf-core/rnaseq"
singularity.runOptions = '-B /data/Al3xEP'

I thought it could be a problem of using SLURM since the HPC might try to download from a compute node but I did run it as local and it doesn't change the error output

apeltzer commented 5 years ago

process.container = "nf-core/rnaseq"

That's exactly what broke the entire thing! This changes which container to download, which isn't existing on DockerHub - change that back to utilizing the standard process.container = nfcore/rnaseq or it won't work.

If you don't need to modify something in the pipeline itself, I don't really see a reason for having your own copy anyways: Pulling from github works in Nextflow directly, e.g.:

nextflow run nf-core/rnaseq -r 1.3 ....

without you having to do anything of the above and a guarantee that it should run 👍