Docker and StriderCD: Brilliant Continuous Integration In A Box
blog.frozenridge.co
blog.frozenridge.co
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).
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.
Yes, yes and YES.
I love that there's a comment in this thread that claims that CI systems have to be like Jenkins to be marketable. CircleCI was great precisely because it worked basically out of the box, and then the configuration to get it to do more complicated stuff (like, say, running migrations) was as easy as specifying a unix command.
I set up our CI system on CircleCI in an afternoon, and we haven't had to touch it since. That's pretty remarkable.
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.
This is in the special case where you want the application itself to determine the initial state of the volume. For example, the developer might want the database pre-loaded with a certain schema, default data and so on. External volumes/bind mounts are a way for the sysadmin to override how and where the contents of a volume are stored.
Re: documentation, you can take a look at this example: http://docs.docker.io/en/latest/examples/couchdb_data_volume...
I hope this helps! Feel free to join the IRC channel (#docker on freenode), it's unusually active and helpful, I'm very proud of how nice the people are on there :)
Can you file a bug at http://github.com/Strider-CD/strider?
Many thanks and sorry you are having issues.
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.