Skip to content
Philip Maechling edited this page Jun 29, 2021 · 25 revisions

Motivation: Distribute UCVM using Docker

UCVM software framework presents testing, development, and distribution challenges because it is written in multiple computing languages, and it must be compiled before used. Also, it is extensible, so new codes are added frequently. Also it has a lot of added capabilities, which may be configured.

To simplify development, we selected a scientific Linux computing environment as our target computer platform. We develop and test on this environment because that's were our big users, HPC modelers, tend to run. We don't maintain support for multiple computing platforms.

We tried to meet the needs of Mac, Windows users using virtualization, first Virtual Box, then Docker.

Previous use of Virtual Box

In 2017, SCEC created Virtual Box versions of our UCVM and Broadband Platform software. The images we created for thos workshop are posted online. However, Virtual Box has updated, and the older images no longer run. We have not diagnossed the problems.

An important limitation for Virtual Box is defining all needed disk space when you define the image. It is difficult for the users to re-define availalbe disk space.

Also, moving files in and out of the Virtual box was a common issue. ftping them was common. There was filesharing capabilities in virtual box, but they required some extensions and they were difficult to get working in a reliable manner.

Use of Docker

Docker is offered by many scientific computing groups and looks to become an alternative to Virtual Box. Some groups can convert their Docker image into singularity images which can run on supercomputers.

Setting up the account

On my laptop, I setup a work area /Users/maechlin/mydocker I start to populate this with Dockerfile, README.md, and the source code from git repo that I want to build in the ucvm image.

Base Docker Image:

We'd like our docker image to be as close to our ucvm development environment as possible. To help future users minimize costs, we based our image on amazon's linux, then we added selected software packages including gcc, python3, automake and others.

Clone this wiki locally