This repository contains Dockerfiles that are used to build components of Micro-Manager.
cd micro-manager/build-java
Create the image for compiling the Micro-Manager Java components:
./build
Compile the Micro-Manager Java components:
./run HOST_DIR CONT_DIR SETUP_SCRIPT CONFIGURE
-
HOST_DIR is the parent folder containing the micro-manager Git repository, the 3rdpartypublic Subversion repository, and any additional build resources on the host system. The source code and 3rdpartypublic dependencies live on the host system instead of inside the container because they are frequently changed and quite large.
-
CONT_DIR the directory corresponding to the HOST_DIR in the Docker container.
-
SETUP_SCRIPT is the full path to the setup script--including the filename--inside the container. Typically, it is /src/setup. You can verify this in the Dockerfile
-
If CONFIGURE=true, the build system is remade and the configure script is rerun before running 'make' and 'make install'. If CONFIGURE=false, only 'make' and 'make install' are run.
-
The build artifacts will be saved to the host system in the directory specified in the Dockerfile (typically this is <HOST_DIR>/target).
./run ~/src/micro-manager /src/micromanager /src/setup true
cd micro-manager/mvn-plugin-2.0
# If you wish to build a plugin for MM2.0gamma, use this instead:
cd micro-manager/mvn-plugin-2.0gamma
Create an image containing Maven and the Micro-Manager dependency .jars.
./build TARGET_DIR
-
TARGET_DIR is the path to the folder containing the Micro-Manager build artifacts.
-
The image will only include MMCoreJ, MMAcqEngine, and MMJ_ installed into the container's local Maven repository.
Compile a Micro-Manager 2.0 plugin with Maven.
./run PLUGIN_DIR
- PLUGIN_DIR is the root directory of your plugin, which typically contains the pom.xml file.
There is a convenience script called build_mm_docker_images in the scripts folder. This script may be used with cron to schedule periodic builds of Micro-Manager and the Docker images. To run this script daily, for example, place it in /etc/cron.daily and make it executable:
chmod a+x build_mm_docker_images
You will almost certainly need to modify some of the default directories and the name of Micro-Manager Git branch within the script to match your build targets.
Pre-built Docker images may be pulled from the LEB Dockerhub repository. Only the run scripts are needed if using the pre-built images.
...and the many, many people behind all the software that we rely on.