docker-archive/docker-snap

Testing on devices

Closed this issue · 0 comments

psftw commented

Goal: define scope of supported devices and setup testing environments for them.

Upstream Docker Community Edition (CE) is released for amd64, armhf (v7), and s390x today with more targets being added over time. Official Debian and RPM packages are published covering the mainstream Linux distributions (https://github.com/docker/docker-ce-packaging). There are also unofficial build scripts for many more architectures. Today the docker snap is released on the following platforms where there is not an official Docker CE package: arm64, ppc64el, and i386.

Note: While snap packages can be deployed on top of traditional Linux distributions, this is considered out of scope.

Devices with "vanilla" Ubuntu Core 16 boot images:

  • Raspberry Pi2, Pi3, and CM3. While these are listed with armhf architecture, there are significant differences between the Pi2 and Pi3 hardware, with their own quirks when it comes to supporting docker. It is very likely that the docker snap would require some customization at the Ubuntu Core image maintenance layer to be fully functional. For example, newer versions of docker tend to depend on newer Linux kernel features to function properly which may not be available in the vanilla Core 16 images on these platforms. These are unknown unknowns (to me) at this point. There are also community efforts to provide custom boot images with Docker CE pre-installed. At the time of writing, I couldn't find one with Docker CE 17.06.
  • Intel Joule. These amd64 devices were recently discontinued, hence out of scope.
  • DragonBoard 410c. These have similar hardware to Pi3, but the Core boot image ships a 64 bit arm64 stack. Supporting arm64 is a goal for Docker, but the upstream CE release is not available yet, hence it should not be considered supported.
  • Intel NUC. These are basically amd64 desktop PCs, so the test coverage on amd64 virtual machines should apply.
  • Samusing Artik 5 & 10. These are both 32-bit only armhf devices. The Artik 10 had a short run of less than a year and was recently discontinued, being replaced by the Artik 7 which has a more powerful 64-bit processor. The Artik 5 is in the same class as Pi2, so the same caveats apply.
  • Generic i386. This could likely run in a VM similarly to the recommended amd64 cloud image, and also will be generic enough to not require additional device-specific testing. Upstream Docker CE does not publish packages for i386, so this should not be supported by the snap.

Other devices:

  • Devices running Ubuntu Core 15 and prior -- out of scope due to deprecation.
  • Today the docker snap ships for ppc64el, but this architecture is not available in upstream Docker CE and there are no Ubuntu Core boot images to test against. It is not possible to validate this environment without both IBM hardware and a corresponding Ubuntu Core 16 boot image. Until then, we should not support this architecture in the docker snap. Note: Work towards a Docker Enterprise Edition (EE) release for ppc64el is underway, though I don't have a status on a corresponding CE packages.
  • Docker CE ships s390x packages, but has the same basic issues as ppc64el.
  • Dell is shipping "certified" devices with Ubuntu Core pre-installed (https://certification.ubuntu.com/iot/models/?release=Core%2016&category=Ubuntu%20Core). These appear to be amd64 hardware, but it is unclear if there are any quirks to how these devices are configured that would necessitate further validation.