openpipelines-bio / openpipeline

https://openpipelines.bio
MIT License
25 stars 11 forks source link

Docker image for correction_cellbender_remove_background process refers to, but does not define PS1 #611

Closed robsyme closed 4 months ago

robsyme commented 6 months ago

When running the correction_cellbender_remove_background process in the provided docker image (ghcr.io/openpipelines-bio/correction_cellbender_remove_background:0.10.1), the task errors out because the image sources /etc/bash.bashrc which refers to an unset PS1 environment variable:

Caused by:
  Essential container in task exited
..
..
..
Command exit status:
  2

Command output:
  (empty)

Command error:
  /etc/bash.bashrc: line 9: PS1: unbound variable

Is it possible to amend the docker definition to ensure that all variables referred to in startup scripts are well defined?

DriesSchaumont commented 6 months ago

Hi @robsyme, thanks for reaching out! Seems like this is is not showing on CI and I am having trouble replicating it. Could you provide some more context on how you execute the docker container? Are you using nextflow run for example?

robsyme commented 5 months ago

The failing runs are being launched via Seqera Platform, which will execute nextflow run on an AWS instance.

The nextflow invocation is

nextflow run \
  'https://github.com/openpipelines-bio/openpipeline' \
  -name extravagant_celsius_6 \
  -params-file 'https://example.com/api/ephemeral/5yU-bCKLtnCU6h3xV-bFsA.yaml' \
  -with-tower 'https://example.com/api' \
  -r 8051bd4da793c501ea2fc5be760a2614f5179d85 \
  -profile docker \
  -main-script target/nextflow/correction/cellbender_remove_background/main.nf \
  -resume be391682-df18-420d-99ae-e53dd4e3964b

And the nf-3AZtXg9BgPYwpd.log log file is attached.

DriesSchaumont commented 4 months ago

Hi @robsyme, thanks for the log file, it helped a lot to find out what was going on. From the log file, I just wanted to clarify one thing: the run for which you have provided the log file did not fail because of the missing PS1 variable. I think the reason why it did was: (from the logs) line 147: syntax error near unexpected token `('. This was caused by a bug in version 0.10.1 where cellbender_remove_background was not working when enabling nextflow's fusion. This issue was fixed in PR #575 released in version 0.11.0.

Comming back to the missing PS1 variable, I think this is a conda related (see for example https://github.com/conda/conda/issues/8186). However, with PR #575 we also moved away from using conda in cellbender_remove_background, so from 0.11.0 and later you should not see this warning again. I would propose to use the latest version of openpipelines. At the moment we support bug fixes for older releases, but providing stable releases with backports is something that we might consider in the future.

Im closing this issue, please feel free to reopen if you are having troubles with the newer (or even better: the newest) releases