adoptium / infrastructure

This repo contains all information about machine maintenance.
Apache License 2.0
85 stars 101 forks source link

Ansible request for Dockerhost Docker Installation Improvement #3237

Open steelhead31 opened 10 months ago

steelhead31 commented 10 months ago

All Dockerhosts - ( Problem identified on Ubuntu, s390x. ppc64le ( & potentially others ), see issue #3234

Delete as appropriate from this list:

Details:

Update the dockerhost playbooks, so that the installation of docker includes all of the mandatory components specified in the installation guide ( in particular the docker-buildx-plugin ) as detailed in this example

https://docs.docker.com/engine/install/ubuntu/

sxa commented 10 months ago

What is the change that means this has only just been seen? If we're going to have a playbook update we need to log it along with the requirement that triggered it.

steelhead31 commented 10 months ago

I believe something has happened within the gradle builds that use docker.. the following error is now thrown which has not been seen before... the root cause of this is a change made to Docker Engine v23 and later. Prior to v23, the default option for "docker build" was to use the regular docker-build plugin installed by default, post v23, the default has been changed to the docker-buildx plugin, which needs installing separately as per notes on this page: https://docs.docker.com/build/architecture/

+ ./gradlew packageJdkDebian --parallel -PPRODUCT=temurin -PPRODUCT_VERSION=21 -PARCH=ppc64el
Picked up _JAVA_OPTIONS: -Xmx4g
Starting a Gradle Daemon (subsequent builds will be faster)
> Task :jdk:debian:compileJava NO-SOURCE
> Task :jdk:debian:processResources NO-SOURCE
> Task :jdk:debian:classes UP-TO-DATE
> Task :jdk:debian:jar
> Task :jdk:debian:assemble

> Task :jdk:debian:packageJdkDebian FAILED
The Value Of ARCH is: ppc64el
ERROR: BuildKit is enabled but the buildx component is missing or broken.
       Install the buildx component to build images with BuildKit:
       https://docs.docker.com/go/buildx/

The following line in the gradle build is responsible

commandLine "docker", "build", "--no-cache",
                "--build-arg", "IMAGE=arm32v7/debian:bullseye",
                "-t", "adoptium-packages-linux-jdk-debian",
                "-f", "Dockerfile",
                getProjectDir().absolutePath + "/src/main/packaging"
sxa commented 10 months ago

Hmmm interesting - thanks.

(Although it's slightly strange that it doesn't automatically pull in what I'd say are quite important dependencies 🤷🏻 )