From cfe5ece6065445d3a105551989df533897a3689b Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Tue, 14 Jul 2026 13:51:07 +0200 Subject: [PATCH 1/5] tools/docker: Build docker image cloudstack-simulator (#13597) * tools: Build docker image from ubuntu 24.04 * docker: run UI with NODE_OPTIONS=--openssl-legacy-provider * docker: add MAVEN_OPTS --- tools/docker/Dockerfile | 13 ++++++------- tools/docker/supervisord.conf | 2 ++ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/tools/docker/Dockerfile b/tools/docker/Dockerfile index 7cb2efb3d4df..20cbdc3da404 100644 --- a/tools/docker/Dockerfile +++ b/tools/docker/Dockerfile @@ -17,7 +17,7 @@ # # CloudStack-simulator build -FROM ubuntu:22.04 +FROM ubuntu:24.04 LABEL Vendor="Apache.org" License="ApacheV2" Version="4.22.1.0" Author="Apache CloudStack " @@ -34,7 +34,8 @@ RUN apt-get -y update && apt-get install -y \ ipmitool \ iproute2 \ maven \ - openjdk-11-jdk \ + openjdk-17-jre-headless \ + openjdk-17-jdk \ python3-dev \ python-is-python3 \ python3-setuptools \ @@ -61,12 +62,10 @@ RUN find /var/lib/mysql -type f -exec touch {} \; && \ mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by ''" --connect-expired-password; \ mvn -Pdeveloper -pl developer -Ddeploydb; \ mvn -Pdeveloper -pl developer -Ddeploydb-simulator; \ - MARVIN_FILE=`find /root/tools/marvin/dist/ -name "Marvin*.tar.gz"`; \ - rm -rf /usr/bin/x86_64-linux-gnu-gcc && \ - ln -s /usr/bin/gcc-10 /usr/bin/x86_64-linux-gnu-gcc; \ - pip3 install $MARVIN_FILE + MARVIN_FILE=`find /root/tools/marvin/dist/ -name "[mM]arvin*.tar.gz"`; \ + pip3 install $MARVIN_FILE --break-system-packages -RUN curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -; \ +RUN curl -sL https://deb.nodesource.com/setup_24.x | sudo -E bash -; \ apt-get install -y nodejs; \ cd ui && npm rebuild node-sass && npm install diff --git a/tools/docker/supervisord.conf b/tools/docker/supervisord.conf index 93f01387575c..f84e7b68b2b6 100644 --- a/tools/docker/supervisord.conf +++ b/tools/docker/supervisord.conf @@ -8,6 +8,7 @@ autorestart=true user=root [program:cloudstack] +environment=MAVEN_OPTS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-exports=java.base/sun.security.x509=ALL-UNNAMED" command=/bin/bash -c "mvn -pl client jetty:run -Dsimulator -Dorg.eclipse.jetty.annotations.maxWait=120" directory=/root stdout_logfile=/dev/stdout @@ -15,6 +16,7 @@ stdout_logfile_maxbytes=0 user=root [program:cloudstack-ui] +environment=NODE_OPTIONS="--openssl-legacy-provider" command=/bin/bash -c "npm run serve" directory=/root/ui stdout_logfile=/dev/stdout From fa0b7a8f870bff5899c7bf83575959e7d94d87be Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Fri, 31 Jul 2026 10:27:22 +0200 Subject: [PATCH 2/5] Update github action to build 4.22.1.0 docker image --- .github/workflows/docker-cloudstack-simulator.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker-cloudstack-simulator.yml b/.github/workflows/docker-cloudstack-simulator.yml index af6cbf49f5ef..f568e6f40b6d 100644 --- a/.github/workflows/docker-cloudstack-simulator.yml +++ b/.github/workflows/docker-cloudstack-simulator.yml @@ -21,6 +21,7 @@ on: push: branches: - main + - 4.22.1.0-backport-docker-fix tags: - 4.* - 5.* From b3b0d92d37d0977375f0f8ce978790fbeadc5c3e Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Fri, 31 Jul 2026 10:32:00 +0200 Subject: [PATCH 3/5] Update github action for docker image build --- .github/workflows/docker-cloudstack-simulator.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-cloudstack-simulator.yml b/.github/workflows/docker-cloudstack-simulator.yml index f568e6f40b6d..f4dfe2fe1ee1 100644 --- a/.github/workflows/docker-cloudstack-simulator.yml +++ b/.github/workflows/docker-cloudstack-simulator.yml @@ -36,10 +36,10 @@ concurrency: jobs: build: if: github.repository == 'apache/cloudstack' - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Login to Docker Registry - uses: docker/login-action@v2 + uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0 with: registry: ${{ secrets.DOCKER_REGISTRY }} username: ${{ secrets.DOCKERHUB_USER }} @@ -48,7 +48,9 @@ jobs: - name: Set Docker repository name run: echo "DOCKER_REPOSITORY=apache" >> $GITHUB_ENV - - uses: actions/checkout@v5 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + with: + persist-credentials: false - name: Set ACS version run: echo "ACS_VERSION=$(grep '' pom.xml | head -2 | tail -1 | cut -d'>' -f2 |cut -d'<' -f1)" >> $GITHUB_ENV From 9b8706d0ef35917515fec362945cecf609141a9c Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Mon, 13 Jul 2026 09:40:20 +0200 Subject: [PATCH 4/5] marvin: use pycryptodome instead of PyCrypt (#13594) --- tools/marvin/setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/marvin/setup.py b/tools/marvin/setup.py index 66eb32111675..70fd629b548f 100644 --- a/tools/marvin/setup.py +++ b/tools/marvin/setup.py @@ -57,7 +57,7 @@ "ipmisim >= 0.7", "pytz", "retries", - "PyCrypt", + "pycryptodome", "kubernetes", "urllib3", "setuptools >= 40.3.0" From 88818170b6336cee4f2ff87a09cd6f09ad437914 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Thu, 6 Aug 2026 13:31:23 +0200 Subject: [PATCH 5/5] Apply suggestion from @weizhouapache --- .github/workflows/docker-cloudstack-simulator.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/docker-cloudstack-simulator.yml b/.github/workflows/docker-cloudstack-simulator.yml index f4dfe2fe1ee1..ac778a48af54 100644 --- a/.github/workflows/docker-cloudstack-simulator.yml +++ b/.github/workflows/docker-cloudstack-simulator.yml @@ -21,7 +21,6 @@ on: push: branches: - main - - 4.22.1.0-backport-docker-fix tags: - 4.* - 5.*