Docker container#

Development container#

This project contains all necessary resources to build a Docker container within which the MPMCA can be compiled and developed.

  1. Install Docker Engine on your system, see this page for instructions.
  2. Make sure all submodules are checked out by executing the command git submodule update --init --recursive from the root directory of this repository.
  3. Execute the following command from the root directory of this repository to build the MPMCA docker container: DOCKER_BUILDKIT=1 docker buildx build -t mpmca_20_04:v1 -f ubuntu_20_04/Dockerfile .
  4. Create a new volume called mpmca-develop-volume using docker volume create mpmca-develop-volume.
  5. After building, start the container using docker run -ti --mount 'type=volume,src=mpmca-develop-volume,dst=/home/mpmca-user/projects/' mpmca_20_04:v1.
  6. You may wish to name the container and register it for automatic restarting using docker run -ti --restart=always --name=mpmca_20_04_docker --mount 'type=volume,src=mpmca-develop-volume,dst=/home/mpmca-user/projects/' mpmca_20_04:v1.

You can copy the built binaries to an Ubuntu 20.04 system and run them with minimal dependencies. The MPMCA applications will dynamically link against some libraries that are installed in the first apt-get call, such as protobuf and libzstd. If you cannot (or do not want to) install all packages that are installed through apt in the Docker image, use the ldd command to find out what libraries are required for the particular executable you want to run.

Local installation#

To install all dependencies locally on an Ubuntu installation, follow the commands in the Dockerfile. Note that you should check out the exact same commits of all dependencies as the ones in the Docker project.