Skip to content
COSMOS Dockerfiles
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
centos7 Release COSMOS v4.4.1 Dec 30, 2019
ubuntu18.04 Release COSMOS v4.4.1 Dec 30, 2019
LICENSE Update Dec 31, 2019

Supported tags and respective Dockerfile links

Quick reference

What is Ball Aerospace COSMOS?

COSMOS is a suite of applications that can be used to control a set of embedded systems. These systems can be anything from test equipment (power supplies, oscilloscopes, switched power strips, UPS devices, etc), to development boards (Arduinos, Raspberry Pi, Beaglebone, etc), to satellites.


How to use this image

General Details

# Linux
docker run --net=host --rm -e DISPLAY -e QT_X11_NO_MITSHM=1 ballaerospace/cosmos

# Windows
set DISPLAY=<My XServer's IP Address ie>
winpty docker run --net=host --rm -e DISPLAY -e QT_X11_NO_MITSHM=1 ballaerospace/cosmos

Requirements: A working Docker installation and an XServer. For Windows, we recommend running docker through winpty. It seems to fix the tty output and prevent container lockups especially when editing files in vi and accidently pressing multiple keys simulataneously on the keyboard.

COSMOS is a GUI based application, so running it from a Docker container requires your host to be running an XServer. On a linux desktop, you probably have this already. On Windows there are several XServers available like Cygwin, XMing, and MobaXTerm. We recommend MobaXTerm because it seems to work well and is a simple standalone executable.

To run with MobaXTerm:

  1. Launcher MobaXTerm
  2. Select Settings -> Configuration, then X11, then set X11 remote access to: full. Click Ok.
  3. Click the large Session button, and then click Shell, and click Ok.
  4. Note the Line: Your DISPLAY is set to X.X.X.X:X:0. Make sure you have DISPLAY environment variable set in your host shell to this value.
  5. Run docker as shown in the example above from a command prompt

A future web-based version of COSMOS is planned that will remove the requirements of running an XServer and will greatly reduce the size of the COSMOS images.

Running this image with a local COSMOS configuration

docker run --rm -e DISPLAY -e QT_X11_NO_MITSHM=1 -v C:/git/cosmos/install:/cosmos ballaerospace/cosmos

To run with a COSMOS configuration stored on the Docker host, mount in your configuration to /cosmos as shown above. Note: You may need to first delete the Gemfile.lock file from the COSMOS configuration folder.

Image assumptions

By default these images should build and work without any major assumptions.

If you are behind a corporate firewall, the centos7 images support passing in a local certificate chain using Docker build secrets, that may allow them to build correctly on your network. For this to work, you must be running docker with "Dameon -> Experimental features" enabled.

Then you should be able to build with a command similar to this:

# Linux / Mac
DOCKER_BUILDKIT=1 docker build --secret=id=sslsecret,src=/certpath/cert.pem -f Dockerfile.exp .

# Windows
winpty docker build --secret=id=sslsecret,src=C:/certpath/cert.pem -f Dockerfile.exp .

Note that on Windows, we recommend running docker through winpty. It seems to fix the tty output and prevent container lockups especially when editing files in vi and accidently pressing multiple keys simulataneously on the keyboard.

Image Variants

The cosmos images support a few different base images and tags:


This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. It is designed to be used both as a throw away container (mount your COSMOS configuration and start the container to start your app), as well as the base to build other images off of.

Some of these tags may have names like ubuntu or centos in them. These are the image names for releases of Ubuntu and Centos that indicate which release the image is based on. If your image needs to install any additional packages beyond what comes with the image, you'll likely want to specify one of these explicitly to minimize breakage when there are new releases of a image.

The default cosmos image is currently based on Ubuntu but Centos is also supported.


COSMOS built against Ubuntu 18.04. This is default base image.


COSMOS built against Centos7. Centos8 is not currently supported because it lacks a Qt4 package.


View license information for licensing specific to COSMOS itself.

As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).

As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.

You can’t perform that action at this time.