Hi,
I am trying to submit a docker image to a challlenge queue according to the instructions here:
3.4.6 - Submitting a Docker Image to a Challenege Queue
and get the following error, although I am registered to the challenge:
"You are not currently participating in an Evaluation/Challenge. Please join one and try again.".
Created by Dani Livne zurkin I don't quite understand that, but the best way to test locally is not to use your dockerfile to add in the input data anyway. Use the following command:
docker run -v /ABSOLUTE_PATH_TO/input.csv:/input/input.csv -v /ABSOLUTE_PATH_TO/output:/output:rw YOUR_DOCKER_IMAGE
Or if you want to mount all the files
use this directory:
https://github.com/Sage-Bionetworks/Tumor-Deconvolution-Challenge-Workflow/tree/master/example_files/fast_lane_dir
And use this command:
docker run -v /ABSOLUTE_PATH_TO/fast_lane_dir:/input:ro -v /ABSOLUTE_PATH_TO/output:/output:rw YOUR_DOCKER_IMAGE
Because there is a race condition - either the COPY or your script will write the latest version of the input.csv file.
Also , the file names in input.csv (hugo.expr.file column etc.) will also have absolute path? I am asking since I got the following error:
FileNotFoundError: [Errno 2] File b'ds1.csv' does not exist: b'ds1.csv' I'll be unable to provide and PC-specific support, we run all our challenges on linux-based EC2 instances.
That said, I don't understand why you can't add a COPY command to your docker file to add in the input files to the correct directory to mimic how they are mounted by our docker tool.
So how can I test my docker image locally on my PC? I cannot COPY (in dockerfile) an input.csv file to /input/ as I will overwrite your file. What command should I run on Windows to inject the input.csv file externally into the image? "/input/input.csv" is the correct absolute path. If your Docker working directory is the root directory, "input/input.csv" should work as well.
CWL tool that runs the submitted docker images:
https://github.com/Sage-Bionetworks/Tumor-Deconvolution-Challenge-Workflow/blob/master/run_docker.cwl
The relevant python code:
#These are the volumes that you want to mount onto your docker container
output_dir = os.getcwd()
input_dir = args.input_dir
#These are the locations on the docker that you want your mounted volumes to be + permissions in docker (ro, rw)
#It has to be in this format '/output:rw'
mounted_volumes = {output_dir:'/output:rw',
input_dir:'/input:ro'}
#All mounted volumes here in a list
all_volumes = [output_dir,input_dir]
#Mount volumes
volumes = {}
for vol in all_volumes:
volumes[vol] = {'bind': mounted_volumes[vol].split(":")[0], 'mode': mounted_volumes[vol].split(":")[1]}
Docker complains that there is no "input/input.csv" file. What is the absolute path for this file? is it "/input/input.csv"? How are you adding it to the docker image? You can make as many submissions as you like to the fast lane queues
How many submissions are allowed to the fast lane queues? @zurkin
Fast lane queues are now open, please see here:
https://www.synapse.org/#!Synapse:syn15589870/wiki/592673 Hi Zurkin
The queues aren't online at the moment. We'll send out a message when they are.