{"action":"created","issue":{"url":"https://api.github.com/repos/hitchtest/hitch/issues/13","labels_url":"https://api.github.com/repos/hitchtest/hitch/issues/13/labels{/name}","comments_url":"https://api.github.com/repos/hitchtest/hitch/issues/13/comments","events_url":"https://api.github.com/repos/hitchtest/hitch/issues/13/events","html_url":"https://github.com/hitchtest/hitch/issues/13","id":110844922,"number":13,"title":"Use docker to run services","user":{"login":"thedrow","id":48936,"avatar_url":"https://avatars.githubusercontent.com/u/48936?v=3","gravatar_id":"","url":"https://api.github.com/users/thedrow","html_url":"https://github.com/thedrow","followers_url":"https://api.github.com/users/thedrow/followers","following_url":"https://api.github.com/users/thedrow/following{/other_user}","gists_url":"https://api.github.com/users/thedrow/gists{/gist_id}","starred_url":"https://api.github.com/users/thedrow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thedrow/subscriptions","organizations_url":"https://api.github.com/users/thedrow/orgs","repos_url":"https://api.github.com/users/thedrow/repos","events_url":"https://api.github.com/users/thedrow/events{/privacy}","received_events_url":"https://api.github.com/users/thedrow/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-10-11T09:19:55Z","updated_at":"2015-10-11T13:11:10Z","closed_at":null,"body":"Docker can be used to run the different components that are being tested.\r\nIt will help with installation and with running the test suite more consistently."},"comment":{"url":"https://api.github.com/repos/hitchtest/hitch/issues/comments/147191618","html_url":"https://github.com/hitchtest/hitch/issues/13#issuecomment-147191618","issue_url":"https://api.github.com/repos/hitchtest/hitch/issues/13","id":147191618,"user":{"login":"crdoconnor","id":6067509,"avatar_url":"https://avatars.githubusercontent.com/u/6067509?v=3","gravatar_id":"","url":"https://api.github.com/users/crdoconnor","html_url":"https://github.com/crdoconnor","followers_url":"https://api.github.com/users/crdoconnor/followers","following_url":"https://api.github.com/users/crdoconnor/following{/other_user}","gists_url":"https://api.github.com/users/crdoconnor/gists{/gist_id}","starred_url":"https://api.github.com/users/crdoconnor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crdoconnor/subscriptions","organizations_url":"https://api.github.com/users/crdoconnor/orgs","repos_url":"https://api.github.com/users/crdoconnor/repos","events_url":"https://api.github.com/users/crdoconnor/events{/privacy}","received_events_url":"https://api.github.com/users/crdoconnor/received_events","type":"User","site_admin":false},"created_at":"2015-10-11T13:11:10Z","updated_at":"2015-10-11T13:11:10Z","body":"Have you noticed any specific inconsistencies?\r\n\r\nInstallation-wise I don't think it would help much. Hitch already substantially isolates the components by downloading and compiling them itself in their own directories. You can specify the same version of postgres that you intend to use in production, for instance, and that one will be downloaded and compiled and run with your code. That eliminates the largest source of inconsistency.\r\n\r\nIf your coworker's laptop's package manager has a different version postgres or python it doesn't matter, for instance. Hitch will be building and using its own.\r\n\r\nDocker does give slightly more isolation than hitch does, but actually not all that much more and probably not enough to make integration worth it. Docker also doesn't (AFAIK) isolate you from the kernel version or libc version, for instance, and differences in both of those can cause inconsistent behavior. It also doesn't work on Mac OS without a VM (last I heard, anyway).\r\n\r\nTo test as close as consistent behavior with what you have running in production, I'd suggest periodically running your hitch tests in an environment that is as close as possible to the environment you run in production - same OS, same OS version, same kernel, same libc, same system libraries. That will either help detect additional production-environment specific bugs or give you additional confidence that your code will work as expected once it hits production (if everything passes).\r\n\r\nHowever, for every-day development that level of isolation and testing is overkill and will slow you down.\r\n\r\nI'll also probably be adding a docker plugin at some point so if you have additional services which you really want to run in docker, you will be able to.\r\n\r\nNote that you can run hitch *in* docker as well, if you like. I tried it and it seems to work."}}