{"action":"created","issue":{"url":"https://api.github.com/repos/taigaio/taiga-back/issues/490","labels_url":"https://api.github.com/repos/taigaio/taiga-back/issues/490/labels{/name}","comments_url":"https://api.github.com/repos/taigaio/taiga-back/issues/490/comments","events_url":"https://api.github.com/repos/taigaio/taiga-back/issues/490/events","html_url":"https://github.com/taigaio/taiga-back/issues/490","id":111977488,"number":490,"title":"Idea: Docker-compose for developing","user":{"login":"bufke","id":739307,"avatar_url":"https://avatars.githubusercontent.com/u/739307?v=3","gravatar_id":"","url":"https://api.github.com/users/bufke","html_url":"https://github.com/bufke","followers_url":"https://api.github.com/users/bufke/followers","following_url":"https://api.github.com/users/bufke/following{/other_user}","gists_url":"https://api.github.com/users/bufke/gists{/gist_id}","starred_url":"https://api.github.com/users/bufke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bufke/subscriptions","organizations_url":"https://api.github.com/users/bufke/orgs","repos_url":"https://api.github.com/users/bufke/repos","events_url":"https://api.github.com/users/bufke/events{/privacy}","received_events_url":"https://api.github.com/users/bufke/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-10-17T18:30:33Z","updated_at":"2015-10-22T12:45:31Z","closed_at":null,"body":"There already is a [docker image](https://github.com/ipedrazas/taiga-docker) for running Taiga. I don't think it would be trivial to use only this to actively develop on taiga. Typically this involves mounting code to the volume so it can be modified on the fly. I think I can fairly easily set up a docker-compose file that would allow people to quickly hack on taiga-back.\r\n\r\n**Advantages**\r\n1. Docker is popular\r\n2. New developers could run with `docker-compose up` and not have to understand how things work with redis, postgres, celery, taiga-front, ect.\r\n3. New developers could get the full system running with a worker queue and websockets.\r\n4. No virtual machine needed on Linux. Docker machine is well supported on Windows and OSX.\r\n5. I'm offering to do the work. I'm already trying this out for my personal dev environment since I like it more than virtual envs.\r\n6. Could make a symmetrical version for taiga-front so front end devs could use a real backend running locally without having to really think about it.\r\n\r\n**Disadvantages**\r\n1. Yet another way to run it in addition to vagrant, existing docker image, do it yourself.\r\n2. I could get busy and stop maintaining it.\r\n3. Probably want to think of a way to make it easy to hack on both front and back ends at the same time using Docker. Don't have a plan yet but I'm sure it's a solvable problem.\r\n4. May need to change a few default settings to increase \"just works\" factor. Could use environment variables with defaults to the original settings to avoid disruptions.\r\n\r\n**Try it out!** This is a preview I'm using for my own purposes. If people like I could make flush it out more and submit a pull request.\r\n\r\n1. Ensure docker-compose is installed\r\n2. Clone https://github.com/burke-software/taiga-back/tree/docker-dev\r\n3. Make a settings/local.py with\r\n\r\n```\r\nfrom .development import *\r\n\r\nDATABASES = {\r\n    'default': {\r\n        'ENGINE': 'transaction_hooks.backends.postgresql_psycopg2',\r\n        'NAME': 'postgres',\r\n        'USER': 'postgres',\r\n        'HOST': 'db',\r\n        'PORT': 5432,\r\n    }\r\n}\r\nBROKER_URL = 'amqp://guest:guest@amqp:5672//'\r\nCELERY_RESULT_BACKEND = 'redis://redis:6379/0'\r\n```\r\n\r\n*This step could be removed at some point to make it \"just work\" more.*\r\n4. Run `docker-compose up`\r\n5. Run other commands like `docker-compose run --rm web python manage.py migrate`\r\n6. Go to localhost:8000/api/v1/\r\n\r\nTo do\r\n\r\n- [ ] Run locally without editing settings\r\n- [ ] Run tests without editing settings\r\n- [ ] Get front end working\r\n- [ ] Make getting started into Install docker and just one command to fully set up dev environment\r\n- [ ] Update documentation with instructions for developing with docker."},"comment":{"url":"https://api.github.com/repos/taigaio/taiga-back/issues/comments/150209254","html_url":"https://github.com/taigaio/taiga-back/issues/490#issuecomment-150209254","issue_url":"https://api.github.com/repos/taigaio/taiga-back/issues/490","id":150209254,"user":{"login":"srault95","id":1041983,"avatar_url":"https://avatars.githubusercontent.com/u/1041983?v=3","gravatar_id":"","url":"https://api.github.com/users/srault95","html_url":"https://github.com/srault95","followers_url":"https://api.github.com/users/srault95/followers","following_url":"https://api.github.com/users/srault95/following{/other_user}","gists_url":"https://api.github.com/users/srault95/gists{/gist_id}","starred_url":"https://api.github.com/users/srault95/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/srault95/subscriptions","organizations_url":"https://api.github.com/users/srault95/orgs","repos_url":"https://api.github.com/users/srault95/repos","events_url":"https://api.github.com/users/srault95/events{/privacy}","received_events_url":"https://api.github.com/users/srault95/received_events","type":"User","site_admin":false},"created_at":"2015-10-22T12:45:31Z","updated_at":"2015-10-22T12:45:31Z","body":"https://github.com/htdvisser/taiga-docker\r\n\r\nI used it. Working properly\r\n\r\n*docker: 1.7.1 Ubuntu 14.04 / docker-compose: 1.4.2*\r\n\r\ndefault login/pass: **admin / 123123**\r\n\r\n```\r\ncd /home/persist\r\nmkdir taiga && cd taiga\r\ncurl -O https://raw.githubusercontent.com/htdvisser/taiga-docker/stable/taiga.yml\r\nmv taiga.yml docker-compose.yml\r\n\r\n# edit docker-compose.yml file for customize\r\ndocker-compose up -d\r\n\r\ndocker exec -it taiga_taigaback_1 bash\r\n\r\ncd /usr/local/taiga/taiga-back/\r\n\r\n# from ./taiga/users/fixtures/initial_user.json : \r\npython manage.py loaddata initial_user\r\n\r\n# from ./taiga/projects/fixtures/initial_project_templates.json\r\npython manage.py loaddata initial_project_templates\r\n\r\npython manage.py loaddata initial_role\r\n```\r\n"}}