Comments (7)
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.
@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.
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.
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.
@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 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.
@oeway Thanks!
I'll leave this issue open; remaining task is to create a public image.
from pymmcore.
Related Issues (20)
- Ship DemoCamera with pymmcore HOT 5
- error load Hamamtsu Camera HOT 4
- Error second time use of startSequenceAcquisition HOT 5
- Import Error on numpy.core.multiarray HOT 3
- DeviceAdapter (TIScam) that works in micro-manager, not working in pymmcore HOT 6
- Dockerfile should use mmCoreAndDevices repo
- Use python -m build to build
- can't install on linux x86_64 py37 HOT 1
- Failure to load Raptor EPIX device HOT 11
- loading NikonTi2 dll HOT 2
- accept type stubs? HOT 3
- abort crash in pymmcore.Configuration.getSetting on missing key HOT 1
- callback system crashing kernel with subclassed `MMEventCallback` HOT 7
- export `__version__` in `__init__`
- Unable to Use Pymmcore in Windows 10 64 bit, Anaconda 32 bit HOT 14
- How to control c++ std locally? HOT 1
- 'CMMCore' object has no attribute 'getXYStagePosition' HOT 1
- Failing control of MCL_MicroDrive device HOT 2
- Error loading device adapter with pymmcore but not micromanager HOT 2
- Issue with error handling in `setSLMImage` HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pymmcore.