From 760c386dd8bcf30b2e94778fb7eceec3d3a0804a Mon Sep 17 00:00:00 2001 From: "Galantsev, Dmitrii" Date: Fri, 31 Jan 2025 14:55:36 -0600 Subject: [PATCH] update_wrapper.sh - Fix docker Change-Id: Icb0d80dacfe17222b32bf5616765abc08cafd085 Signed-off-by: Galantsev, Dmitrii [ROCm/amdsmi commit: 6dcb9322f9578925544251c08b18d4c1e9709a79] --- projects/amdsmi/py-interface/Dockerfile | 15 ++++++++------ projects/amdsmi/update_wrapper.sh | 26 ++++++++++++++----------- 2 files changed, 24 insertions(+), 17 deletions(-) diff --git a/projects/amdsmi/py-interface/Dockerfile b/projects/amdsmi/py-interface/Dockerfile index d158c521bf..96ca9cbb35 100644 --- a/projects/amdsmi/py-interface/Dockerfile +++ b/projects/amdsmi/py-interface/Dockerfile @@ -13,6 +13,7 @@ RUN apt update --yes \ && apt install --yes \ build-essential \ cmake \ + git \ gnupg \ libdrm-dev \ libpython3-dev \ @@ -42,9 +43,11 @@ RUN TEMPDIR=$(mktemp -d) \ && rm -rf $TEMPDIR WORKDIR /src -CMD cp -r /src /tmp/src \ - && cd /tmp/src \ - && rm -rf build .cache \ - && cmake -B build -DBUILD_WRAPPER=ON \ - && make -C build -j $(nproc) \ - && cp /tmp/src/py-interface/amdsmi_wrapper.py /src/py-interface/amdsmi_wrapper.py +CMD ["sh", "-c", "\ + cp -r /src /tmp/src && \ + cd /tmp/src && \ + rm -rf build .cache && \ + cmake -B build -DBUILD_WRAPPER=ON && \ + make -C build -j $(nproc) && \ + cp /tmp/src/py-interface/amdsmi_wrapper.py /src/py-interface/amdsmi_wrapper.py \ +"] diff --git a/projects/amdsmi/update_wrapper.sh b/projects/amdsmi/update_wrapper.sh index 87caead649..9b55393731 100755 --- a/projects/amdsmi/update_wrapper.sh +++ b/projects/amdsmi/update_wrapper.sh @@ -16,19 +16,23 @@ command -v docker &>/dev/null || { exit 1 } -does_image_exist () { - docker images | grep -q "$DOCKER_NAME" +DOCKER_BUILDKIT=$(docker buildx version >/dev/null 2>&1 && echo 1 || echo 0) +export DOCKER_BUILDKIT + +build_docker_image () { + DOCKER_DIR="$DIR/py-interface" + DOCKERFILE="$DOCKER_DIR/Dockerfile" + + DOCKERFILE_TIME=$(git log -1 --format=%at -- "$DOCKERFILE") + IMAGE_TIME=$(docker inspect "$DOCKER_NAME" --format '{{.Created}}' 2>/dev/null | date +%s -d- || echo 0) + + # Build if Dockerfile is newer than image + if [ "$DOCKERFILE_TIME" -gt "$IMAGE_TIME" ]; then + docker build "$DOCKER_DIR" -f "$DOCKERFILE" -t "$DOCKER_NAME":latest + fi } -if ! does_image_exist; then - # if you prefer to not generate it yourself: - # pull from https://hub.docker.com/r/dmitriigalantsev/amdsmi_wrapper_updater - # using the following command: - # docker pull dmitriigalantsev/amdsmi_wrapper_updater - echo "No docker image found! Generating one" - # set to 0 because it's compatible with more systems - DOCKER_BUILDKIT="${DOCKER_BUILDKIT:=0}" docker build "$DIR/py-interface" -t "$DOCKER_NAME":latest -fi +build_docker_image ENABLE_ESMI_LIB="" # source ENABLE_ESMI_LIB variable from the previous build if it exists