|
1 |
| -**Windows Compatible Cwltool** |
| 1 | +## **Windows Compatible Cwltool** |
2 | 2 | Windows Compatible cwltool means that now you can create and run your workflows usinng cwltool on windows under a docker container.
|
3 | 3 | On windows, all tools and workflows will be executed inside a linux based docker container. If a Docker Container is not provided explicitly(using [Docker Requirement](http://www.commonwl.org/v1.0/CommandLineTool.html#DockerRequirement)) by user, we use a minimal, posix compliant Alpine Docker image which has Bash pre installed as fallback(Default) [Docker Container](https://github.com/frol/docker-alpine-bash).
|
4 | 4 | You can also provide your own Default Docker Container using `--default-container` argument.
|
5 | 5 |
|
6 |
| -***Requirements***: |
7 |
| -python 2 or 3, Yes Now we support python 3 too. |
8 |
| -Docker |
| 6 | +### ***Requirements***: |
| 7 | +* python 2 or 3, Yes Now we support python 3 too. |
| 8 | +* Docker |
9 | 9 |
|
10 |
| -***Best Practises***: |
| 10 | +### ***Best Practises***: |
11 | 11 | You should install nodejs on your system if your Workflow contains [Javascript Expressions](http://www.commonwl.org/v1.0/CommandLineTool.html#InlineJavascriptRequirement).
|
12 | 12 |
|
13 |
| -***Installation***: |
14 |
| -****Using Pip****: |
15 |
| -You can install cwltool on windows using pip |
| 13 | +### ***Installation***: |
| 14 | +**Using Pip**: |
| 15 | +You can install cwltool on windows using pip |
16 | 16 | `pip install cwltool`
|
17 | 17 |
|
18 |
| -****Developing from source****: |
19 |
| -`git clone https://github.com/common-workflow-language/cwltool.git` |
20 |
| -`cd cwltool` |
| 18 | +**Developing from source**: |
| 19 | +`git clone https://github.com/common-workflow-language/cwltool.git` |
| 20 | +`cd cwltool` |
21 | 21 | `python setup.py develop`
|
22 | 22 |
|
23 | 23 | ***Note:*** In order to test if cwltool has been successfully installed on your windows system, run `cwltool` on your `cmd`. A screen showing help instructions should be there.
|
24 | 24 |
|
25 |
| -***Running Cwltool's Unittest*** |
26 |
| -If you want to run cwltool's unit test, go to cwltool's repository on your system and run |
| 25 | +### ***Running Cwltool's Unittest*** |
| 26 | +If you want to run cwltool's unit test, go to cwltool's repository on your system and run |
27 | 27 | `python setup.py test`
|
28 | 28 |
|
29 |
| -***Running Conformance tests using cwltool*** |
30 |
| -Download cwltest using `pip install cwltest` |
31 |
| -Clone `Common-Workflow-language` repository using `git clone https://github.com/common-workflow-language/common-workflow-language.git` |
32 |
| -change directory using `cd common-workflow-language/v1.0` |
33 |
| -Run Tests with `cwltest --test conformance_test_v1 |
34 |
| -0.yaml -j 4 --tool cwltool`, here `-j` arg is used to run multiple tests in parallel. |
| 29 | +### ***Running Conformance tests using cwltool*** |
| 30 | +Download cwltest using `pip install cwltest` |
| 31 | +Clone `Common-Workflow-language` repository using `git clone https://github.com/common-workflow-language/common-workflow-language.git` |
| 32 | +change directory using `cd common-workflow-language/v1.0` |
| 33 | +Run Tests with `cwltest --test conformance_test_v1.0.yaml -j 4 --tool cwltool`, here `-j` arg is used to run multiple tests in parallel. |
35 | 34 |
|
36 |
| -Installing cwltool on windows is smooth but you may face some problems in setting up Docker. Some of the common issues and their solution are mentioned below. |
| 35 | + |
| 36 | + |
37 | 37 |
|
38 |
| -***Docker doesn't work on windows, even outside cwltool.*** |
| 38 | +> ***Installing cwltool on windows is smooth but you may face some problems in setting up Docker. Some of the common issues and their solution are mentioned below.*** |
| 39 | +
|
| 40 | +**Docker doesn't work on windows, even outside cwltool.** |
39 | 41 | Make sure you followed all instructions carefully while installing Docker. Especially setting up Environment variables. Consult online Docker community if problem persists.
|
40 | 42 |
|
41 |
| -***You Local Drives are not being Shared with Docker Container.*** |
42 |
| -On native Docker for windows(supported by Windows 10): |
43 |
| -On your tray, next to your clock, right-click on Docker, then click on Settings, there you'll find the Shared Drives: Here you can share your Drives with Docker. |
| 43 | +**You Local Drives are not being Shared with Docker Container.** |
| 44 | +* ***On native Docker for windows(supported by Windows 10):*** |
| 45 | +On your tray, next to your clock, right-click on Docker, then click on Settings, there you'll find the Shared Drives: Here you can share your Drives with Docker. |
44 | 46 | If you encounter a Firewall issue, you can [refer this post](https://blog.olandese.nl/2017/05/03/solve-docker-for-windows-error-a-firewall-is-blocking-file-sharing-between-windows-and-the-containers/).
|
45 | 47 |
|
46 |
| -On Docker Toolbox: |
| 48 | +* ***On Docker Toolbox:*** |
47 | 49 | Docker Toolbox uses Virtualbox to create linux base on which Docker machine runs. Your Docker Container will be created inside Virtualbox. To share you Drives
|
48 | 50 | in virtualbox, go to ****Virtualbox->settings->shared folders->Machine Folders****
|
49 |
| -Here Map your Drives you want to share with your Docker Container. |
| 51 | +Here Map your Drives you want to share with your Docker Container. |
50 | 52 | If you want to keep these settings permanent(Recommended!), You should mark `make permanent` checkbox or else these settings will be erased everytime your virtualbox closes.
|
51 | 53 |
|
52 |
| -***In a Docker Container with Shared Drives, few Files are shown on `ls` but most of them doesn't.*** |
53 |
| -This means your Drives/Folders are not shared properly. When a path is mentioned in docker, it gets cached. So the few folder names that appear on `ls` is because of that. |
| 54 | +**In a Docker Container with Shared Drives, few Files are shown on `ls` but most of them doesn't.** |
| 55 | +This means your Drives/Folders are not shared properly. When a path is mentioned in docker, it gets cached. So the few folder names that appear on `ls` is because of that. |
54 | 56 | In order to solve this problem follow the previous question.
|
55 | 57 |
|
56 |
| -***Can't create/modify a file in Docker when using cwltool.*** |
| 58 | +**Can't create/modify a file in Docker when using cwltool.** |
57 | 59 | When folders are shared with docker Container, they inherit their current file access permission. If you can write to a folder(with your current privileges) on your local machine, you should be able to write to that folder inside Docker Container also(provided same user initiated Docker). In all it is a file permission issue.
|
58 | 60 |
|
59 |
| -If you still face some issues setting up Docker on windows, please consult online Docker Community. If the Problem is specific to cwltool, create a issue on cwltool. We would definitely try to help you. |
| 61 | +**Workflows with Javascript Expressions occasionally gives Timeout error.** |
| 62 | +For evaluating `Javascript expressions` cwltool looks for Nodejs on your system, in case if it can't find a Nodejs installation it creates a node Docker container to execute JS expressions. |
| 63 | +In order to avoid waiting forever in case some error occurs, cwltool times out js expression evaluation after timeout period ends. You can provide a custom timeout period using `--eval-timeout` argument, by default its value is 20 sec. |
| 64 | +So if you face this error, best option is to install Nodejs on your local system. If you can't then use the `--eval-timeout` argument and set a higher timeout value. |
| 65 | + |
| 66 | +> ***If you still face some issues setting up Docker on windows, please consult online Docker Community. If the Problem is specific to cwltool, create a issue on cwltool. We would definitely try to help you.*** |
60 | 67 |
|
61 |
| -***Workflows with Javascript Expressions occasionally gives Timeout error.*** |
62 |
| -For evaluating `Javascript expressions` cwltool looks for Nodejs on your system, in case if it can't find a Nodejs installation it creates a node Docker container to execute JS expressions. |
63 |
| - In order to avoid waiting forever in case some error occurs, cwltool times out js expression evaluation after timeout period ends. You can provide a custom timeout period using `--eval-timeout` argument, by default its value is 20 sec. |
64 |
| - So if you face this error, best option is to install Nodejs on your local system. If you can't then use the `--eval-timeout` argument and set a higher timeout value. |
65 |
| - |
|
0 commit comments