Start using docker save to publish docker helper images

Description

We provide a docker helper image for users to download locally on their machine and for the runner to load it. Currently, we are doing this using docker export and then inside of the runner we import it from the local file system.

Since we are going to add windows support for the docker executor docker export is not supported

Proposal

Start publishing windows based container using docker save

When building and publishing the windows based docker images, we should run docker save on the images and start publishing the tarball files the same way as the linux based images

Start using docker save & docker load to distribute linux containers

Currently we are using docker export & docker import for linux based containers. The benefit of doing so means the that archive we create is slightly smaller since the image is flattened and all the meta data is lost. Below you can find a comperistion between docker save and docker export

Save

-rw------- 1 steve staff 11809860 Feb 12 11:42 prebuilt-arm.tar.xz
-rw------- 1 steve staff 11324984 Feb 12 11:42 prebuilt-x86_64.tar.xz

Export

-rw------- 1 steve staff 11795340 Feb 11 13:59 prebuilt-arm.tar.xz
-rw------- 1 steve staff 11319672 Feb 11 13:59 prebuilt-x86_64.tar.xz

The benefit we get of using docker save is that it will be consistent with the windows based images, which leads into have 1 code path for both OSes and won't have anymore divergence between the two platforms.

Links to related issues and merge requests / references

&535 (closed)