Our focus is on developer productivity. That means we try to make things fast, reliable and low overhead.
As far as differentiators, we're pretty fast. We can automatically parallelize your test suite across N VMs. We automatically inspect your source tree, and figure out how to run the tests, without configuration. It's not perfect, but a substantial percentage of customers get a working build on their first try.
We have some pretty cool features in the pipeline that haven't been in generally available products, we hope to blow peoples' minds with them when they're released :-)
Let me know if there's anything else I can answer.
Organizations need to heavily extend and modify the tool for their own individual workflow and process.
For that reason we believe the best CI tools are Open Source (like Travis and Jenkins).
We are working on a hosted Strider offering where each customer will be able to customize their version independently of one another.
Strider's value proposition is extensibility and customization. It's the opposite of a "one size fits all" approach (Travis does an amazing job at that already).
Another use case is trying to spin up a development container (where the code resides on the host), but, again, shared volumes overwrite the directory. You can ADD your code initially and then mount the volume when you run it, but it's added hassle.
This is by design, "I want the postgres db data to live outside the container" is a deployment-specific decision, and should not be hardcoded into the container itself. You (or someone you distribute this container to) might not want the db data to live outside the container, or might want it to live at a specific path on his machine. That's why a Dockerfile lets you specify that /var/lib/postgres is persistent, but doesn't let you specify how to persist it.
Now, if I remember our IRC discussion correctly, in your case you're hitting a limitation of docker's implementation of volumes, which is that the container cannot specify an initial state for its volume - it can only start empty. That is a limitation that we're going to fix. But we need to make sure we fix it without breaking portability of containers.
I hope this helps.
Your proposal of having the container specify an initial state would certainly work. Exactly how to do this will take some thinking (what if the external volume has some files in it? What if it's empty but the user needs it empty? Etc), but I think this is a necessary feature for a large variety of use cases.
Thanks for the reply!
This is something I'm still not quite clear on. According to the issues in mention here: https://github.com/dotcloud/docker/issues/1185 it is possible to do what StavrosK is asking. What am I missing? Why would a volume need an initial state when when the goal can be accomplished with a bind mount?
I also +1'd the documentation issue because I can't seem to wrap my head around what the current state of volumes and mounting is. Appreciate any direction you could point me in.
The docker registry is getting hit really hard because of the explosive growth of the project - we're in the process of upgrading the infrastructure, should get much better very soon.
Can you file a bug at http://github.com/Strider-CD/strider?
Many thanks and sorry you are having issues.