# This is an example of how you can use Docker only workflows as a Cromwell # backend provider. *This is not a complete configuration file!* The # content here should be copy pasted into the backend -> providers section # of the cromwell.examples.conf in the root of the repository. You should # uncomment lines that you want to define, and read carefully to customize # the file. If you have any questions, please open an issue at # https://www.github.com/broadinstitute/cromwell/issues # Documentation # This backend doesn't have an official page, but you can read about general # Docker use here: https://cromwell.readthedocs.io/en/develop/tutorials/Containers/#docker # If you want to use containers, the other sections on that page will be useful to you. backend { default = "Local" providers { # Example backend that _only_ runs workflows that specify docker for every command. Local { config { run-in-background = true runtime-attributes = """ String? docker String? docker_user = "$EUID" String? database = "/global/cfs/cdirs/m3408/aim2/database" String? cromwell_exec = "/global/cfs/cdirs/m3408/aim2/dev/metaT_JGI/cromwell-executions" """ submit = "/bin/bash ${script}" #--volume ${cwd}:${docker_cwd} \ submit-docker = """ LOOKUP=$(shifterimg lookup ${docker}) if [[ ! $LOOKUP ]]; then shifterimg pull ${docker} fi shifter --image=docker:${docker} \ --volume ${cromwell_exec}:/cromwell-executions \ ${"--volume " + database + ":/databases"} \ ${job_shell} ${docker_script} """ # dockerRoot = /global/cfs/cdirs/m3408/aim2/dev/metaT_JGI/cromwell-executions filesystems { local { localization: [ "hard-link", "soft-link", "copy" ] caching { duplication-strategy: [ "hard-link", "soft-link", "copy" ] } } } } } } } docker { hash-lookup { enabled = false # Set this to match your available quota against the Google Container Engine API #gcr-api-queries-per-100-seconds = 1000 # Time in minutes before an entry expires from the docker hashes cache and needs to be fetched again #cache-entry-ttl = "20 minutes" # Maximum number of elements to be kept in the cache. If the limit is reached, old elements will be removed from the cache #cache-size = 200 # How should docker hashes be looked up. Possible values are "local" and "remote" # "local": Lookup hashes on the local docker daemon using the cli # "remote": Lookup hashes on docker hub and gcr method = "local" } }