FAQs

1. Can Basil be used outside the web-portal, in a stand-alone environment?
- Yes, Basil can be used in a stand-alone environment. It needs Docker, Python and Snyk to function in the command-line mode. We will update this FAQs page with the link to the Docker image containing all the dependencies for using Basil in a stand-alone environment.

2. How does Basil work?
- Basil takes the specifications for building your code and generates an intermediate YAML file that is then used to generate a Dockerfile, which in turn is used to create a Docker image.

3. Will Singularity image generation be supported?
- Yes, Basil will support Singularity image generation in the near future. Currently, you can create a Docker image and pull it with Singularity to create a Singularity Image File (SIF) and run it on the system of your choice. There will be regular updates in the future, and the features that we are currently working on are listed on the iSpec page (accessible after logging in to this web-portal).

4. How do I provide the source code?
- You would need to upload the files and folders required for building your code and creating a Docker image by clicking the upload button on the "Terminal" or "iSpec" tabs after logging in.

5. Why do I need iCompute when I already have Docker installed on my system?
- iCompute can be useful if you would like to build Docker images but do not know how to write a Dockerfile. In this case, you may be having Docker installed on your computer but may not be able to use it for building the image unless you learn how to write a Dockerfile.

6. I do not want to use any program as root on my system, can I still use iCompute for generating Docker images?
- "sudo" permissions are needed for building Docker images. If you do not have "sudo" permissions on a system, you will not be able to build the images there. In this case, one can come to icompute.us and build the image. Additionally, you can push the images to Docker Hub and add an appropriate license if needed using iCompute. The image can then be pulled from Docker Hub and run on the desired systems, either directly or by converting to Singularity Image Files (SIF). This method bypasses having to use root mode on HPC or work systems where working through root mode might not be feasible.

7. I would like to package my software with a license, should I do that seperately?
- Basil provides the option of adding a suitable license to the Docker image. If this option is selected, the text for the license is generated by Basil and added to the Docker image.

8. How will I recieve the Docker image once it is built?
- There are two main ways to recieve your Docker image once submitted for building. One can either push it to a Docker Hub account by providing the username and access token, or they can simply choose to get an email with a link to download the image as a TAR package.

9. What kind of base images can I use?
- Basil provides a set of base images that have been thoroughly vetted by the team and confirmed to work perfectly with the software. In the future we will be adding additional base images as well as a functionality for the users to simply type in the base image that they want.

10. I have a use case for my software that is pretty complicated to build a Dockerfile for and that method is not covered under the Video Demos tab.
- If you require any assistance on how to go about building a Dockerfile for your software, feel free to email the Basil team through the Contact Us page or post a message through the Messageboard of this website. We will continue to cover additional use case scenarios under the Video Demos page as well so please keep an eye on it.

11. Why are there two ways to copy files in the iSpec form, and what is the difference between them?
- Basil provides the option of two ways for copying files as they are associated with two seperate commands in a Dockerfile. 'Copy files from directory to image' refers to the COPY command of a Dockerfile and 'Advanced Copy' refers to the ADD command. COPY only supports the basic copying of local files into the image, while ADD has some features (like local-only tar extraction and remote URL support) that are not immediately obvious. Consequently, the best use for ADD is local tar file auto-extraction into the image, as in "ADD rootfs.tar.xz /" .