1. Dependencies & Prerequisites
System Dependencies:
Mac OS X 10.8+ (Docker requires this) or Linux. kb-sdk does not run natively in Windows
Xcode (Mac only) https://developer.apple.com/xcode
- Docker runtime https://www.docker.com
Attention: Docker Desktop is banned at ANL and possibly other institutions.
Additional information about Docker Desktop restrictions at ANL: https://help.cels.anl.gov/2023/08/16/docker-desktop-is-no-longer-allowed-at-argonne/
Rancher Desktop https://docs.rancherdesktop.io/ (alternative to Docker Desktop)
At least 20 GB free on your hard drive to install Docker, Xcode, Java JRE, etc.
(Not required for Docker-based installation) Java JRE 7 or 8 (9 is currently incompatible) http://www.oracle.com/technetwork/java/javase/downloads/index.html
We recommend using Mac OS X 10.8+ or Linux for SDK development. Windows development is not currently supported. If you are running Windows or do not want to develop on your local machine, we recommend using Virtualbox and installing Ubuntu 14+.
Xcode or the Xcode Command Line Tools will install some standard terminal commands like make and git that are necessary for building the KBase SDK and your module code. https://developer.apple.com/xcode
The git homepage can be found at https://git-scm.com. On Ubuntu, install it with sudo apt-get install git
.
1.1. Docker Installation
KBase module code is run using Docker, which allows you to easily install all system tools and dependencies your module requires. Installing Docker locally allows you to test your build and run tests on your own computer before registering your module with KBase.
Instructions for installing on Mac: https://docs.docker.com/docker-for-mac/install/
Instructions for installing on Linux: https://docs.docker.com/install/linux/docker-ce/ubuntu/
On Linux, be sure to follow these post installation steps so you can run docker and kb-sdk as a non-root user.
When you run an app in a narrative, it runs in a docker container on KBase’s servers. Learn more about docker containers here: https://www.docker.com/what-container. Docker containers allow you to package and compile programs and dependencies, such as MEGAHIT , and run them anywhere.