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/
 

Reply via email to