ccdmb / predector

Effector prediction pipeline based on protein properties.
Apache License 2.0
11 stars 7 forks source link

BUG: docker (long install) test fails #36

Closed JWDebler closed 4 years ago

JWDebler commented 4 years ago

Describe the bug Installed docker version the long way. Installation succeeds, but the test fails.

To Reproduce nextflow run -profile test,docker -resume ccdmb/predector If you try to run it several times, it crashes at different bits, depending on which process is run first. But they all seem to relate to environment variables.

Screenshots or copy-pasted terminal outut

Execution cancelled -- Finishing pending tasks before exit
Error executing process > 'check_env:get_apoplastp_version'

Caused by:
  Process `check_env:get_apoplastp_version` terminated with an error exit status (125)

Command executed:

  if ! which ApoplastP.py > /dev/null
      then
          echo -e "Could not find the program 'ApoplastP.py' in your environment path.
  " 1>&2

          echo "Please install ApoplastP using the conda environment." 1>&2

          exit 127
      fi

      VERSION=$(ApoplastP.py -h | grep "^# ApoplastP [[:digit:]]" | sed 's/^# ApoplastP \([[:digit:]]*\.*[^[:space:]]*\).*$/\1/')

Command exit status:
  125

Command output:
  (empty)

Command error:
  Unable to find image 'predector/predector:0.0.1-dev.1' locally
  docker: Error response from daemon: pull access denied for predector/predector, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
  See 'docker run --help'.
Execution cancelled -- Finishing pending tasks before exit
Error executing process > 'check_env:get_signalp3_version'

Caused by:
  Process `check_env:get_signalp3_version` terminated with an error exit status (125)

Command executed:

  if ! which signalp3 > /dev/null
      then
          echo -e "Could not find the program 'signalp3' in your environment path.
  " 1>&2

          if which signalp > /dev/null
          then
              echo "You do have 'signalp' installed, but because we run multiple versions of signalp, we require executables to be available in the format 'signalp3', 'signalp4', 'signalp5' etc." 1>&2
          fi

          echo "Please either link signalp to signalp3 or install signalp using the conda environment." 1>&2

          exit 127
      fi

      VERSION=$(signalp3 -v | sed 's/\([^,]*\).*/\1/')                                                                                                                                                         
Command exit status:
  125                                                                                                                                                                                                          
Command output:
  (empty)                                                                                                                                                                                                      
Command error:
  Unable to find image 'predector/predector:0.0.1-dev.1' locally
  docker: Error response from daemon: pull access denied for predector/predector, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
  See 'docker run --help'.
Error executing process > 'check_env:get_localizer_version'

Caused by:
  Process `check_env:get_localizer_version` terminated with an error exit status (125)

Command executed:

  if ! which LOCALIZER.py > /dev/null
      then
          echo -e "Could not find the program 'LOCALIZER.py' in your environment path.
  " 1>&2

          echo "Please install LOCALIZER using the conda environment." 1>&2

          exit 127
      fi

      VERSION=$(LOCALIZER.py -h | grep "^# LOCALIZER [[:digit:]]" | sed 's/^# LOCALIZER \([[:digit:]]*\.*[^[:space:]]*\).*$/\1/')                                                                              
Command exit status:
  125                                                                                                                                                                                                          
Command output:
  (empty)

Command error:
  Unable to find image 'predector/predector:0.0.1-dev.1' locally
  docker: Error response from daemon: pull access denied for predector/predector, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
  See 'docker run --help'. 

Operating system (please enter the following information as appropriate):

darcyabjones commented 4 years ago

I think this one might also be resolved by running with the -latest flag. This just pulls the latest version from github. By default if you've run it before, it doesn't pull in new changes.

JWDebler commented 4 years ago

I see it is looking for an image called 'predector/predector:0.0.1-dev.1'. I am building everything again and check, because that ".1" is not in my image name.

JWDebler commented 4 years ago

Yep, deleting the images and building from scratch fixed it. I must have stopped or crashed another build earlier that lead to the ".1" tag.

darcyabjones commented 4 years ago

Had you run an earlier version of predector on this same VM?

When you do nextflow run <githubrepo> it basically just clones the repo and runs from there. Unless you use -latest or nextflow pull --all it just keeps using the same cloned repo.

Just might be that you built the docker container and tagged it as 0.1.0-dev, but your local copy of predector cloned by nextflow was 0.0.1-dev.1 which was an older version.