opensearch-project / opensearch-build

🧰 OpenSearch / OpenSearch-Dashboards Build Systems
Apache License 2.0
140 stars 273 forks source link

[Deprecation] Docker Build scripts deprecation and migration to buildkit. #4126

Open peterzhuamazon opened 1 year ago

peterzhuamazon commented 1 year ago

Since docker engine has released version 24, we have seen the legacy builder behavior being deprecated and will be eventually removed in a future release: https://docs.docker.com/engine/deprecated/#legacy-builder-for-linux-images

DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
            Install the buildx component to build images with BuildKit:
            https://docs.docker.com/go/buildx/

This means the scripts we used to build both single and multi-arch layers docker images would need to be updated accordingly, or we should lock the docker engine version now.


On LINUX:

The legacy builder behavior will be replaced by buildkit eventually, in which it will contain the buildx plugin, all commands also changed compares to the legacy docker build command. https://github.com/moby/buildkit

The buildx behavior is unchanged and we can still use the buildx plugin by itself as of now, as we already lock the buildx version here: https://github.com/opensearch-project/opensearch-build/blob/main/docker/ci/dockerfiles/current/docker-builder.ubuntu2004.x64.dockerfile#L57


On Windows:

The buildkit does not support Windows docker image build as of now per their msg:

    Classic builder for building Windows images

    BuildKit does not (yet) provide support for building Windows images, and docker build continues to use the classic builder to build native Windows images on Windows daemons.

We still need to monitor and observe this behavior going on.

As of now, we should start locking docker version on both LINUX images and Windows images, so that breaking change can be taken care greacefully if the classic builder ever get removed.

Thanks.

peterzhuamazon commented 9 months ago

PRs: