This panel searches content only in this space. To search content in all spaces, use the box at the upper right.

For overview information, see Discovery Environment on the CyVerse website.







Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.



Step 1: Check if the tool and correct version are already installed in the DE.

Before requesting installation of a new tool or new version of an existing tool, check the list of all tools in the DE to make sure that the tool and version you want is not already available. Because all tools now run inside a Docker containers and are installed as Docker images in the DE, if the tool is not already available, you must first create a Dockerfile for the tool before requesting its installation in the DE.

Step 2: Create the Dockerfile following best practices.

Construction of each tool's image needs to be reviewed in order to ensure that its construction is as repeatable as possible, as well as ensuring that execution of each tool is as repeatable and reliable as possible. The Dockerfile satisfies this goal of documenting how a particular tool was installed and of making the tool construction repeatable. To do so, use the following guidelines:

  • Adhere to the Docker community specific set of instructions.
  • Additionally, here are few CyVerse Dockerfile best practices:
    • Include all installation steps in the Dockerfile. For example, a Dockerfile should not copy and run a script that performs Ubuntu APT commands; instead, the APT commands should be in the Dockerfile.
    • Write the Dockerfile to fail-fast. This means that if anything goes wrong, construction of the image will fail.
    • Encapsulate the tool execution to avoid external dependencies unless by design (e.g., tool provides integration with external service).

    • Derive the tools from official Docker images.

    • Specify an ENTRYPOINT in your Dockerfile. The entry point will allow the docker image to be run similar to an executable. Alternatively, you can also provide an entry point later when adding your tool to the Discovery Environment.

Examples of good Dockerfiles

Two simple examples of good Dockerfiles are shown below.
Additionally, take a look at the list of commonly used CyVerse base images in the FAQ section below, and the troubleshooting tips in the Docker cheat sheet.


Figure 2. Flow diagram of Dockerization of tools in the DE


  • Build a new image: Use docker build command as shown below to test your new image:
Code Block
docker build -t <your/docker-image> .


  • Test the new image: Use docker run command as shown below to test your new image:


  • If your app works the way you expect it to, skip to Optional steps.
  • If your app still needs a bit of work and If the changes you make affect your Dockerfile (for example, it uses a newer version of the software and subsequently new dependencies are created), go back to step 2 and repeat.