This is an automated email from the ASF dual-hosted git repository.
lizhimins pushed a commit to branch rocketmq-studio
in repository https://gitbox.apache.org/repos/asf/rocketmq-dashboard.git
The following commit(s) were added to refs/heads/rocketmq-studio by this push:
new 779b8c0e7 fix(docker): ship the license determinations into the image
with legal.py (#6350)
779b8c0e7 is described below
commit 779b8c0e7aed2396d3cc72743dcd544ea48e9ae6
Author: lizhimins <[email protected]>
AuthorDate: Mon Oct 12 18:29:55 2026 +0800
fix(docker): ship the license determinations into the image with legal.py
(#6350)
#6349 made legal.py read two new repo paths
(scripts/legal-determinations.json and legal/licenses/) but the Dockerfile
still copied only the script into /opt/studio-legal. check-jar runs inside the
image, where legal.py resolves its base to the parent of scripts/, so it found
neither and re-derived the materials from an empty determination set — which
does not match what the maven gate embedded, and the image build died with 'JAR
is missing legal materials or they do not match the act [...]
Two COPY lines at the same relative paths the script expects. Verified
without building an image, against a directory laid out exactly like
/opt/studio-legal: with both paths present check-jar reports 278 components and
exits 0; removing them reproduces that exact error and exits 1. Found by
re-running the full deploy with both gates back on (LEGAL_GATE=1, no
-Dmaven.antrun.skip), which is what a release build uses.
---
server/Dockerfile | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/server/Dockerfile b/server/Dockerfile
index e42ef3ab8..e1e2e4cfd 100644
--- a/server/Dockerfile
+++ b/server/Dockerfile
@@ -61,6 +61,11 @@ RUN if ! command -v python3 >/dev/null 2>&1; then \
fi
COPY server/scripts/legal.py /opt/studio-legal/scripts/legal.py
+# legal.py resolves its base to the parent of scripts/, so the determination
table and the collected
+# upstream license texts have to land at the same relative paths here as under
server/ — otherwise
+# check-jar re-derives materials from an empty determination set and reports
the JAR as mismatched.
+COPY server/scripts/legal-determinations.json
/opt/studio-legal/scripts/legal-determinations.json
+COPY server/legal/licenses /opt/studio-legal/legal/licenses
COPY server/LICENSE server/NOTICE /opt/studio-legal/
COPY server/LICENSE server/NOTICE /usr/share/licenses/rocketmq-studio/