mesos / chronos

Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules
http://mesos.github.io/chronos/
Apache License 2.0
4.38k stars 529 forks source link

Make Two Dockerfiles, one to build and one to run #601

Open JohnOmernik opened 8 years ago

JohnOmernik commented 8 years ago

The current Dockerfile works as intended, it creates an image that builds and runs Chronos. It also ends up being 1.2 GB in size.

It would be helpful if there could be another Dockerfile that is bare minimum required to run a prebuilt instance of Chronos.

This request doesn't preclude the need for the build docker. It's awesome to have everything needed to build in one container. It would be neat if that could be built then tgzed up and and exported to a volume. Then from there, have a "run" Docker Container where you just take the tgz, unpack, and run.

Some things to consider: what is needed in this image? Chronos uses the Ubuntu base image for building, but could we use alpine docker with some basic additions like Java? Maybe more is needed beyond that (this is where the request is going, to have an expert in what is required for Chronos be able to create small env for running it). Does it need npm/node to run or is that just for building? What about python? Mesos? Could mesos be dropped if we just include the .so file? Can we drop Mvn after the fact?

Small is best here!

Any thoughts on where to start would be appreciated.

naxhh commented 8 years ago

+1 for small docker image.

gkleiman commented 8 years ago

Mesosphere builds the mesosphere/chronos Docker images using the scripts/Dockerfiles contained in the following repositories:

The size of the resulting images is around 275 MB.

naxhh commented 8 years ago

That layer is around 275. Total image is around 600 https://imagelayers.io/?images=mesosphere%2Fchronos:latest