Docker Image - EMsoft-org/EMsoft GitHub Wiki

EMsoft 5.0 Docker Container

As of January 2024, we provide a Docker Container for EMsoft 5.0. This means that you no longer have to build EMsoft yourself, or download the nightly builds from the BlueQuartz server. Currently, the Docker image supports the AMD64 and ARM64 platforms and we are working on the Windows container.


Instructions for obtaining the EMsoft Docker image

  • If you are new to EMsoft and you have never executed any of its programs, then you will need to create a few folders inside which your data files will be kept. At an appropriate location in your home folder, create a folder called EMsoft5. Everything will be contained within this folder. For what follows below, we will use the symbol fullpath to indicate the absolute path to this EMsoft5 folder. Inside this folder create three folders with the names: EMPlay, XtalFolder, and Docker.

  • On the other hand, if you already have EMsoft 5.0 installed and you have existing data and crystal structure folders, you can continue to use those with the Docker image as explained below. In that case you only need to create the EMsoft5 and Docker folders.

  • If you haven't already done so, download and install the Docker app; start the app.

  • From a terminal window, move to the EMsoft5/Docker folder, and pull the Docker image as follows (note the all lowercase emsoft!):

docker pull marcdegraef/emsoft:buildx-latest
  • Then, to execute the image on a Mac ARM platform, use the following command:
docker run --rm -it -v /fullpath/EMPlay:/home/EMuser/EMPlay -v /fullpath/XtalFolder:/home/EMuser/XtalFolder --platform=linux/arm64 marcdegraef/emsoftbuildx-latest

On a Linux platform, simply replace arm64 in the --platform option by amd64. Note that on the arm64 platform, programs that need OpenCL access to the GPU currently do not work; we are looking into that issue...

  • This should start up the container and you will be logged in as the EMuser user in the /home/EMuser folder. The shell PATH variable is already set up to include the EMsoft executable folder, so you can simply type the name of an EMsoft program to execute it. The EMPlay and XtalFolder folders will be symbolic links to the corresponding folders in your file system; this way, you will not lose any data when you quit the container.

  • If you want to see all the EMsoft global variables, execute the EMsoftConfigTest program. While working in the container, you can change some of these parameters by editing the EMsoftConfig.json file in the /home/.config/EMsoft folder; note that your changes will disappear when you quit the container.