{"action":"created","issue":{"url":"https://api.github.com/repos/docker/docker/issues/17803","labels_url":"https://api.github.com/repos/docker/docker/issues/17803/labels{/name}","comments_url":"https://api.github.com/repos/docker/docker/issues/17803/comments","events_url":"https://api.github.com/repos/docker/docker/issues/17803/events","html_url":"https://github.com/docker/docker/pull/17803","id":115743179,"number":17803,"title":"Add initial support for Docker on ARM","user":{"login":"Govinda-Fichtner","id":598566,"avatar_url":"https://avatars.githubusercontent.com/u/598566?v=3","gravatar_id":"","url":"https://api.github.com/users/Govinda-Fichtner","html_url":"https://github.com/Govinda-Fichtner","followers_url":"https://api.github.com/users/Govinda-Fichtner/followers","following_url":"https://api.github.com/users/Govinda-Fichtner/following{/other_user}","gists_url":"https://api.github.com/users/Govinda-Fichtner/gists{/gist_id}","starred_url":"https://api.github.com/users/Govinda-Fichtner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Govinda-Fichtner/subscriptions","organizations_url":"https://api.github.com/users/Govinda-Fichtner/orgs","repos_url":"https://api.github.com/users/Govinda-Fichtner/repos","events_url":"https://api.github.com/users/Govinda-Fichtner/events{/privacy}","received_events_url":"https://api.github.com/users/Govinda-Fichtner/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/docker/docker/labels/status/1-design-review","name":"status/1-design-review","color":"fef2c0"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-11-08T16:32:51Z","updated_at":"2015-11-11T06:52:59Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/docker/docker/pulls/17803","html_url":"https://github.com/docker/docker/pull/17803","diff_url":"https://github.com/docker/docker/pull/17803.diff","patch_url":"https://github.com/docker/docker/pull/17803.patch"},"body":"This PR creates the foundation which allows to add suppport for ARM step by step. \r\n\r\nInitial ARM support is only tested for Scaleway C1 servers and will be extended to other devices later.\r\n\r\n# Scope of the PR\r\nMost of the changes introduced with this PR are due to the fact that the existing infrastructure for building, testing and packaging Docker is made for Intel-x86-64.\r\nIn order to make this infrastructure compatible with ARM we need to make it aware of the architecture it runs on.\r\n\r\nThat begins with the [Dockerfile](https://github.com/docker/docker/blob/master/Dockerfile) that is used to build the Docker Development image and continues with the [Makefile](https://github.com/docker/docker/blob/master/Makefile) and its associated targets.\r\n\r\nThe Makefile targets that should work are:\r\n- make\r\n- make default\r\n- make shell\r\n- make validate\r\n- make build\r\n- make bundles\r\n- make binary\r\n\r\nSupport for the rest of the existing make targets (e.g. test-unit or test-integration-cli) will be introduced step by step with additional PRs.\r\n\r\nThis PR was tested against the Scaleway ARM servers as described in the newly added ARM.md file. \r\n\r\n# Explanation of the changes\r\nAll the changes were made on the principle that the existing Intel-x86-64 workflow still works out-of-the-box and that we only introduce as little new code as possible to get ARM working.\r\n\r\nChanges to the Dockerfile:\r\n- FROM had to be changed to an ARM compatible base image\r\n- support for ZFS was removed for the time being as ZFS is only supported on some ARM devices\r\n- Notary was disabled because there is a problem with one of its dependencies. There is an [open issue](https://github.com/docker/notary/issues/239) for this\r\n- use Go build from source as there is no offically supported precompiled Go 1.5 for ARM\r\n- remove the other DOCKER_CROSSPLATTFORMS entries as were are only building for ARM\r\n- the Docker images that are used for the integration tests were replaced by versions that work on ARM\r\n\r\nChanges to the Makefile:\r\n- added logic to determine architecture we are running on\r\n- the default architecture is still Intel-x86-64 and is used with the existing Dockerfile\r\n- if we are on ARM `Dockerfile.arm` is used\r\n- as the `Dockerfile` is hardcoded in some of the hack-scripts we need to make it configurable and pass it into the Docker Development image\r\n- we also need to pass the DOCKER_ENGINE_OSARCH variable as we need to pull the correct integration test images in .ensure-frozen-images\r\n\r\nChanges to .ensure-frozen-images:\r\n- in the case that we are on ARM we need to pull integration test images that work on ARM\r\n- and we need to ensure that these images are identified by the same repository/name combinations as the existing images to ensure that they work with all the existing integrations tests; that is why we need to tag them accordingly on ARM"},"comment":{"url":"https://api.github.com/repos/docker/docker/issues/comments/155685383","html_url":"https://github.com/docker/docker/pull/17803#issuecomment-155685383","issue_url":"https://api.github.com/repos/docker/docker/issues/17803","id":155685383,"user":{"login":"StefanScherer","id":207759,"avatar_url":"https://avatars.githubusercontent.com/u/207759?v=3","gravatar_id":"","url":"https://api.github.com/users/StefanScherer","html_url":"https://github.com/StefanScherer","followers_url":"https://api.github.com/users/StefanScherer/followers","following_url":"https://api.github.com/users/StefanScherer/following{/other_user}","gists_url":"https://api.github.com/users/StefanScherer/gists{/gist_id}","starred_url":"https://api.github.com/users/StefanScherer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StefanScherer/subscriptions","organizations_url":"https://api.github.com/users/StefanScherer/orgs","repos_url":"https://api.github.com/users/StefanScherer/repos","events_url":"https://api.github.com/users/StefanScherer/events{/privacy}","received_events_url":"https://api.github.com/users/StefanScherer/received_events","type":"User","site_admin":false},"created_at":"2015-11-11T06:52:59Z","updated_at":"2015-11-11T06:52:59Z","body":"@tiborvass At the moment the community adds a prefix/suffix like `arm-*`, `rpi-*`, `armhf-*` or `*-arm` for ARM images. A multi arch Hub to use the same image name for different CPU types would really help in the future.\r\n"}}