Updated Dockerfile for easier deployment and consistent builds #105
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi,
This PR contains an updated Docker build process which I hope will become a supported and well-maintained deployment method for JAFFA.
It supports GitHub Actions for auto deployment, includes a slimmed down final run stage, and includes a fixed set of binaries and runtimes which mirror the settings recommended in the JAFFA wiki. This PR also includes a patch for the
bpipe
bug in ssadedin/bpipe#290, which is a randomly occurring issue which can present in both containers and native runs.Improvements compared to existing approaches:
/JAFFA
, so you can find e.g.JAFFA_assembly.groovy
at the location/JAFFA/JAFFA_assembly.groovy
/ref
bpipe run <params>
withdocker run docker://ghcr.io/olliecheng/jaffa:latest <params>
install_linux64.sh
instead of a package manager. This should ease maintainability in two ways. Firstly, this means that the Docker image uses the same fixed dependency versions as the native install method, eliminating any potential differences arising as a result of version mismatches. Secondly, this prevents any update to package manager repositories affecting key dependencies.bpipe run <groovy>
. When running JAFFA through bioconda or its auto-built Docker image, the Conda distribution obscures the bpipe call around a wrapper which may be confusing to users: see Please provide a conda wrapper for jaffal, as for other jaffa functionality #74.The main goal is to produce an image which can be easily updated in the future if JAFFA changes, with as minimal change to the Dockerfile as possible.
In my testing, I've observed that the output from the native and the Docker JAFFAL pipelines are identical when testing using the instructions and data provided in the wiki. For direct, assembly, and hybrid modes, I think that the output is unlikely to be identical due to randomness in
bowtie2
. However, the first 9 columns of JAFFA_results.csv are identical.You can try out my build of version 2.4 at docker://ghcr.io/olliecheng/jaffa:latest.