Hello,
We are working on a machine learning model wrapped in an Application Package. I ran into a small compatibility/support issue with dockerRequirements.
Currently only DockerPull is supported by ades. During our local testing phase we have been using cwltool as the main runner. It supports dockerOutputDirectory. Below is a sample commandlinetool we use to update the model configuration file before the model is ran:
- class: CommandLineTool
id: update-config
label: cmdtool to update the HydroMT config
doc: Update the HydroMT config file
baseCommand: update
inputs:
- id: res
type: string
inputBinding:
position: 1
- id: precip_fn
type: string
inputBinding:
position: 2
outputs:
- id: setupconfignew
type: File
outputBinding:
glob: "wflow.ini" #The script ensures that we generate the file in the current working directory of wherever it is running
requirements:
DockerRequirement:
dockerPull: potato55/hydromt-test:float
dockerOutputDirectory: /hydromt # Need to find a workaround for the functionality of this
ResourceRequirement:
coresMax: 2
ramMax: 2048
NetworkAccess:
class: NetworkAccess
networkAccess: true
All of our required files are placed in the /hydromt directory within the docker container. Running the command line tool above works perfectly with cwltool and the output file is generated.
However, when we switched to ades, dockerOutputDirectory had to be removed as it is not supported. This creates an error:
PermissionError: [Errno 1] Operation not permitted: '/hydromt'
even if all the permissions are setup in the docker container beforehand.
What we need to do is generate the config file so that we can use it in the next step to generate the model (ideally all operations happen in /hydromt.
For reference here is the DockerFile we are using to build our container:
https://gist.github.com/jzvolensky/33bb0230546f3926042a5d69c9747a0d
Are there any workarounds to not using dockerOutputDirectory but maintain the permission levels or any general suggestions?
Thanks!
Hello,
We are working on a machine learning model wrapped in an Application Package. I ran into a small compatibility/support issue with dockerRequirements.
Currently only
DockerPullis supported by ades. During our local testing phase we have been usingcwltoolas the main runner. It supportsdockerOutputDirectory. Below is a sample commandlinetool we use to update the model configuration file before the model is ran:All of our required files are placed in the
/hydromtdirectory within the docker container. Running the command line tool above works perfectly with cwltool and the output file is generated.However, when we switched to ades, dockerOutputDirectory had to be removed as it is not supported. This creates an error:
PermissionError: [Errno 1] Operation not permitted: '/hydromt'even if all the permissions are setup in the docker container beforehand.
What we need to do is generate the config file so that we can use it in the next step to generate the model (ideally all operations happen in
/hydromt.For reference here is the DockerFile we are using to build our container:
https://gist.github.com/jzvolensky/33bb0230546f3926042a5d69c9747a0d
Are there any workarounds to not using dockerOutputDirectory but maintain the permission levels or any general suggestions?
Thanks!