Coder Social home page Coder Social logo

Comments (7)

marktsuchida avatar marktsuchida commented on July 17, 2024

Cool! To be honest I've never tried to dockerize Micro-Manager because it wouldn't (practically or easily) work for real hardware. But I don't see any problem with a demo-only docker image.

On Linux it should be possible to build Micro-Manager fully from a script, although there will probably be a few tricky parts. If you are okay with something that you will only run from pymmcore (i.e. no Java stuff), it should become pretty simple (just use an environment with no JDK so that ./configure disables MMCoreJ and MMStudio, or use --without-java). Unfortunately there is no ./configure option to select for DemoCamera only, but it should disable any device adapters whose dependencies are missing. (And the build script could delete all installed device adapters other than DemoCamera and Utilities if desired.)

from pymmcore.

oeway avatar oeway commented on July 17, 2024

@marktsuchida Thanks for the detailed tips. And following that I manage to build my docker file.

Although I had to do some patch to the code to remove two device adapters (TriggerSCope and TriggerSCopeMM).

Here is the error:

mv -f .deps/TriggerScopeMM.Tpo .deps/TriggerScopeMM.Plo
make[2]: *** No rule to make target 'TriggerSCopeMMDAC.cpp', needed by 'TriggerSCopeMMDAC.lo'.  Stop.
make[2]: Leaving directory '/home/weiouyang/workspace/micro-manager/DeviceAdapters/TriggerScopeMM'
Makefile:651: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/weiouyang/workspace/micro-manager/DeviceAdapters'
Makefile:521: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

Maybe it needs to be fixed upstream?

from pymmcore.

nicost avatar nicost commented on July 17, 2024

Thanks! Capitalization typo (hence not detected on Windows or Mac). Fixed upstream.

How should we make the docker image available (maybe showing my ignorance here)? Github or website, or is their a central repo for these things>

from pymmcore.

oeway avatar oeway commented on July 17, 2024

Great! Thanks @nicost .

I think it's enough to include a docker file, e.g. in this Github repo. Optionally, you can setup automatic builds on DockerHub, so it will automatically build docker images and host there. The central repo for docker images is DockerHub, you basically build a docker image from your docker file, and generate docker image (the one I made is around 4GB), then push it to DockerHub, so other users can just download/pull that instead of building them to save time. For exmaple: I pushed the image built from my docker file here: https://hub.docker.com/r/oeway/micromanager-demo .

Worth mentioning, Github also launched container register service: https://github.blog/2020-09-01-introducing-github-container-registry/

from pymmcore.

marktsuchida avatar marktsuchida commented on July 17, 2024

@oeway I'd be happy to include your Dockerfile in this repo. Would you mind creating a PR?

We can go from there to an automated build; since pymmcore is already using GitHub Actions to build, it might indeed be convenient to use GitHub's registry. If you're not in too much of a hurry, I'm happy to set this up.

from pymmcore.

oeway avatar oeway commented on July 17, 2024

@oeway I'd be happy to include your Dockerfile in this repo. Would you mind creating a PR?

Here you go: #20
Feel free to adjust it.

We can go from there to an automated build; since pymmcore is already using GitHub Actions to build, it might indeed be convenient to use GitHub's registry. If you're not in too much of a hurry, I'm happy to set this up.

Sounds good, for me, this is not urgent at all. I only use the docker image to build DemoCamera device and run on Binder, it would be enough if you can ship the DemoCamera with pymmcore (#19).

from pymmcore.

marktsuchida avatar marktsuchida commented on July 17, 2024

@oeway Thanks!

I'll leave this issue open; remaining task is to create a public image.

from pymmcore.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.