Preliminary Steps
You need to get the tools to run the emulator. Follow the instructions in Get Source to download the tools. You will see many jam-x and djam-x programs in the tools folder. Make them available for execution by including the tools folder in your path. At least the djam tools should be available to proceed with the Docker-based execution.
Any Docker-based JAMScript execution (even if it is a single node) requires the configuration of a network topology. To configure the network topology, Pumba Chaos Testing Tool is required. From the above link, you need to download the appropriate executable for your OS.
The next step is to make Docker containers run without sudo
. Find the sequence of steps
necessary for your Linux distribution or MacOS by searching the Internet. Test that you
actually succeeded in configuring Docker containers to run
without sudo
by using
a command like docker ps
and observing the outcome. You won’t be able to continue the
experiments without completing this step.
Getting a Docker Image with JAMScript
Assuming that you have the tools (JAMTools) in your path, you can use djam
pull mahes25/jamscript
to get a Docker image with JAMScript. If you have an
alternate image, you can pull that one by substituting it for
mahes25/jamscript
in the above command.
After this step, you have a Docker image with JAMScript. Follow the instructions in Emulator Run to carry out the experiments using this Docker image.
Packaging JAMScript in Docker Containers
If you have added a feature to the JAMScript language runtime or compiler and want to have that in the Docker version, you need to repackage the container images. You can share your container image with others using a public Docker image repository.
The JAMScript source package has a Dockerfile
necessary for rebuilding the docker image.
cd $JAMHOME/scripts/install
to see the Dockerfile
. You can edit it if you want to make changes.
Run the following command from there to rebuild a container image. The Dockerfile
is
configured to use the files from the repository at https://github.com/citelab/JAMScript. Therefore, if you
need any additions to the rebuilt image, those additions should be committed to the above repository or
the Dockerfile
needs to be edited to use another location for the source files.
docker build --no-cache -t jamscript .
After the build is completed, you can push the image to a remote repository like the following.
docker tag jamscript docker_hub_user/jamscript
docker push docker_hub_user/jamscript