{"action":"created","issue":{"url":"https://api.github.com/repos/ceph/ceph-docker/issues/72","labels_url":"https://api.github.com/repos/ceph/ceph-docker/issues/72/labels{/name}","comments_url":"https://api.github.com/repos/ceph/ceph-docker/issues/72/comments","events_url":"https://api.github.com/repos/ceph/ceph-docker/issues/72/events","html_url":"https://github.com/ceph/ceph-docker/pull/72","id":86187433,"number":72,"title":"WIP: multi-OS container support","user":{"login":"leseb","id":912735,"avatar_url":"https://avatars.githubusercontent.com/u/912735?v=3","gravatar_id":"","url":"https://api.github.com/users/leseb","html_url":"https://github.com/leseb","followers_url":"https://api.github.com/users/leseb/followers","following_url":"https://api.github.com/users/leseb/following{/other_user}","gists_url":"https://api.github.com/users/leseb/gists{/gist_id}","starred_url":"https://api.github.com/users/leseb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/leseb/subscriptions","organizations_url":"https://api.github.com/users/leseb/orgs","repos_url":"https://api.github.com/users/leseb/repos","events_url":"https://api.github.com/users/leseb/events{/privacy}","received_events_url":"https://api.github.com/users/leseb/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-06-08T13:56:27Z","updated_at":"2015-06-08T14:19:52Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ceph/ceph-docker/pulls/72","html_url":"https://github.com/ceph/ceph-docker/pull/72","diff_url":"https://github.com/ceph/ceph-docker/pull/72.diff","patch_url":"https://github.com/ceph/ceph-docker/pull/72.patch"},"body":"This is the first bits of a multi-OS support implementation. I don't see\r\nany clear way to specify a base image unless than creating sub\r\ndirectories. So yes, this duplicates some part of the code but given\r\nthat we use automated builds I don't see how we can use Docker's build\r\nsystem to search for different 'base'.\r\nMy idea was to have something like:\r\n\r\nFROM %%CEPH_NAMESPACE%%/%%CEPH_PREFIX%%base:%%CEPH_TAG%%\r\n\r\nIt looks like we can achieve this only by using an external build system\r\nthat will push our images to the hub. However that means having an infra\r\nsomewhere, maintain it and all the pain that comes with it. I don't\r\nbelieve @Ulexus or I (@leseb) are willing to invest in such system.\r\n\r\nThis requires heavy review before merging as this will break our\r\nbuilding system. We need to modify the hub to reflect this change.\r\n\r\nSigned-off-by: Sébastien Han <seb@redhat.com>"},"comment":{"url":"https://api.github.com/repos/ceph/ceph-docker/issues/comments/110010465","html_url":"https://github.com/ceph/ceph-docker/pull/72#issuecomment-110010465","issue_url":"https://api.github.com/repos/ceph/ceph-docker/issues/72","id":110010465,"user":{"login":"Ulexus","id":1946248,"avatar_url":"https://avatars.githubusercontent.com/u/1946248?v=3","gravatar_id":"","url":"https://api.github.com/users/Ulexus","html_url":"https://github.com/Ulexus","followers_url":"https://api.github.com/users/Ulexus/followers","following_url":"https://api.github.com/users/Ulexus/following{/other_user}","gists_url":"https://api.github.com/users/Ulexus/gists{/gist_id}","starred_url":"https://api.github.com/users/Ulexus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Ulexus/subscriptions","organizations_url":"https://api.github.com/users/Ulexus/orgs","repos_url":"https://api.github.com/users/Ulexus/repos","events_url":"https://api.github.com/users/Ulexus/events{/privacy}","received_events_url":"https://api.github.com/users/Ulexus/received_events","type":"User","site_admin":false},"created_at":"2015-06-08T14:19:52Z","updated_at":"2015-06-08T14:19:52Z","body":"@leseb Would you be averse to reorganizing things such that this _doesn't_ break the build system?  Basically, a structure something like:\r\n```\r\n.\r\n├── base -> root/ubuntu/base\r\n├── mds -> root/ubuntu/mds\r\n├── mon -> root/ubuntu/mon\r\n├── osd -> root/ubuntu/osd\r\n├── rgw -> root/ubuntu/rgw\r\n└── root\r\n    ├── centos\r\n    │   ├── base\r\n    │   ├── mds\r\n    │   ├── mon\r\n    │   ├── osd\r\n    │   └── rgw\r\n    └── ubuntu\r\n        ├── base\r\n        ├── mds\r\n        ├── mon\r\n        ├── osd\r\n        └── rgw\r\n```\r\n\r\nNote:  I'm not actually _certain_ this won't break the build system (it depends on the Docker builder honouring symlinks), but it has a better chance.  \r\n\r\nIt _also_ means that, for the common use cases, people can easily select their build root simply by changing the symlinks.  Of course, we could also prebuild alternate roots as something like `ceph/centos-base`, `ceph/centos-mon`, etc., through the same mechanism.  This leaves open the door to, with minimal impact, swap default roots very easily, and with much testing, should such a thing be desired, in the future.\r\n\r\nAs a post-script, I'm guessing there is some clear and present desire to offer other build-roots?"}}