Docker images for building Micro-Manager components

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Docker images for building Micro-Manager components

Kyle Douglass-2
Hi all,
I have started using Docker to streamline some of the steps we use in our lab for compiling the Micro-Manager Java components and for building custom Micro-Manager Java plugins with Maven. My Bash scripts and Dockerfiles may be found here:

https://github.com/LEB-EPFL/mm-docker

My question is: are there any foreseeable legal problems if I push the Maven build image to Dockerhub? It will contain all the .jar files that are found inside C:\Program Files\Micro-Manager-1.4\plugins\Micro-Manager, such as Big.jar, bsh-2.0b6.jar, etc.

Would it be better to only place MMCoreJ.jar, MMAcqEngine.jar, and MMJ_.jar inside the image and push that? It would avoid any possible legal problems by excluding all the other jars, but I don't know whether these other jars are needed in a general-purpose image for building plugins. According to the documentation, all the jars in the plugins/Micro-Manager folder should be added as dependencies. (See step 5.1 under "Using Netbeans" https://micro-manager.org/wiki/Writing_plugins_for_Micro-Manager)

Thanks!
Kyle




------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: Docker images for building Micro-Manager components

Karl Bellve-3


On Mon, May 7, 2018 at 6:51 AM Kyle Douglass <[hidden email]> wrote:
Hi all,
I have started using Docker to streamline some of the steps we use in our lab for compiling the Micro-Manager Java components and for building custom Micro-Manager Java plugins with Maven. My Bash scripts and Dockerfiles may be found here:

https://github.com/LEB-EPFL/mm-docker

My question is: are there any foreseeable legal problems if I push the Maven build image to Dockerhub? It will contain all the .jar files that are found inside C:\Program Files\Micro-Manager-1.4\plugins\Micro-Manager, such as Big.jar, bsh-2.0b6.jar, etc.


Hi Kyle,

I have no issue with anything you do with our jar, Big.jar. 


Cheers Karl

Karl Bellvé
Biomedical Imaging Group
Molecular Medicine 
University of Massachusetts Medical School 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: Docker images for building Micro-Manager components

Mark Tsuchida-3
In reply to this post by Kyle Douglass-2
Hi Kyle,

On Mon, May 7, 2018 at 3:51 AM, Kyle Douglass <[hidden email]> wrote:
Hi all,
I have started using Docker to streamline some of the steps we use in our lab for compiling the Micro-Manager Java components and for building custom Micro-Manager Java plugins with Maven. My Bash scripts and Dockerfiles may be found here:

https://github.com/LEB-EPFL/mm-docker

Cool!

My question is: are there any foreseeable legal problems if I push the Maven build image to Dockerhub? It will contain all the .jar files that are found inside C:\Program Files\Micro-Manager-1.4\plugins\Micro-Manager, such as Big.jar, bsh-2.0b6.jar, etc.

That depends on where you are getting the plugins/Micro-Manager directory from. Unfortunately, in the 1.4.x binary download (MMSetup_*.exe), there are a few non-open-source JARs included due to being required by MicroMagellan. All of these are available as free binary downloads, but redistribution requires permission from their authors. Otherwise, the remaining JARs are either built from µManager source code or are third-party open source projects (you still need to honor their licenses, of course -- I'm curious what the standard practice for this is for Docker images). The situation with C++ components is much more complicated.

Some µManager plugins do depend on these third-party JARs. These dependencies will be clarified in the near future (see my branch https://github.com/marktsuchida/micro-manager/tree/mm2-next which contains Gradle build files that make the plugin dependencies explicit).

Best,
Mark

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: Docker images for building Micro-Manager components

Kyle Douglass-2
Hi Mark and Karl,

Karl, thanks for the go ahead on the BIG.jar!

On Tue, May 8, 2018 at 1:53 AM, Mark Tsuchida <[hidden email]> wrote:

My question is: are there any foreseeable legal problems if I push the Maven build image to Dockerhub? It will contain all the .jar files that are found inside C:\Program Files\Micro-Manager-1.4\plugins\Micro-Manager, such as Big.jar, bsh-2.0b6.jar, etc.

That depends on where you are getting the plugins/Micro-Manager directory from. Unfortunately, in the 1.4.x binary download (MMSetup_*.exe), there are a few non-open-source JARs included due to being required by MicroMagellan. All of these are available as free binary downloads, but redistribution requires permission from their authors. Otherwise, the remaining JARs are either built from µManager source code or are third-party open source projects (you still need to honor their licenses, of course -- I'm curious what the standard practice for this is for Docker images).

Thanks for this info. I'm actually getting the .jars by building MM in Linux. (The corresponding location is <MM_ROOT>/share/micro-manager/jars; I only referenced the Windows directory since it's likely more familiar to others.) The idea is that the code in the MM repository can be periodically pulled from GitHub and built within the container. This ensures that an author's plugin is always working with the latest .jars and is always built in the same environment. This build image I already pushed to Dockerhub for others to use since there aren't any legal issues that I am aware of: https://hub.docker.com/r/epflbiophys/micro-manager/

The mvn-plugin image (not uploaded) contains just Maven and currently all the jars that were created while compiling Micro-Manager. This image is used to create a container that compiles a user's plugin without installing anything but Docker. Since it would require a lot from me to check the license of each 3rd-party .jar, I think will remove everything but MMCoreJ.jar, MMAcqEngine.jar, and MMJ_.jar and push this to Dockerhub at the same URL as given above.

Thanks again,
Kyle

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general
Reply | Threaded
Open this post in threaded view
|

Re: Docker images for building Micro-Manager components

Kyle Douglass-2
Just a small addendum for anyone interested:

You can see how all of this is working in the Travis CI configuration file for one of our plugins here: https://github.com/LEB-EPFL/ALICA/blob/master/.travis.yml (Ignore that I'm currently building for Java 8...)

Essentially, the Docker image epflbiophys/micro-manager:mvn-plugin-2.0 that contains the Maven and the Micro-Manager build artifacts (MMCoreJ.jar, MMAcqEngine.jar, and MMJ_.jar) for writing plugins is pulled from Dockerhub in the before_install step. Then, the code is compiled in the script step with the docker run... command.

The downside is that this relies on the Docker image being up-to-date with the latest jars, but I can setup a nightly build on one of our servers and push the updated image to Dockerhub each night. The goal is to make plugin development as easy as possible and compatible with open source build tools like Travis.

Cheers,
Kyle

On Tue, May 8, 2018 at 9:09 AM, Kyle Douglass <[hidden email]> wrote:
Hi Mark and Karl,

Karl, thanks for the go ahead on the BIG.jar!

On Tue, May 8, 2018 at 1:53 AM, Mark Tsuchida <[hidden email]> wrote:

My question is: are there any foreseeable legal problems if I push the Maven build image to Dockerhub? It will contain all the .jar files that are found inside C:\Program Files\Micro-Manager-1.4\plugins\Micro-Manager, such as Big.jar, bsh-2.0b6.jar, etc.

That depends on where you are getting the plugins/Micro-Manager directory from. Unfortunately, in the 1.4.x binary download (MMSetup_*.exe), there are a few non-open-source JARs included due to being required by MicroMagellan. All of these are available as free binary downloads, but redistribution requires permission from their authors. Otherwise, the remaining JARs are either built from µManager source code or are third-party open source projects (you still need to honor their licenses, of course -- I'm curious what the standard practice for this is for Docker images).

Thanks for this info. I'm actually getting the .jars by building MM in Linux. (The corresponding location is <MM_ROOT>/share/micro-manager/jars; I only referenced the Windows directory since it's likely more familiar to others.) The idea is that the code in the MM repository can be periodically pulled from GitHub and built within the container. This ensures that an author's plugin is always working with the latest .jars and is always built in the same environment. This build image I already pushed to Dockerhub for others to use since there aren't any legal issues that I am aware of: https://hub.docker.com/r/epflbiophys/micro-manager/

The mvn-plugin image (not uploaded) contains just Maven and currently all the jars that were created while compiling Micro-Manager. This image is used to create a container that compiles a user's plugin without installing anything but Docker. Since it would require a lot from me to check the license of each 3rd-party .jar, I think will remove everything but MMCoreJ.jar, MMAcqEngine.jar, and MMJ_.jar and push this to Dockerhub at the same URL as given above.

Thanks again,
Kyle


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
micro-manager-general mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/micro-manager-general