From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
Makefile | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 120 insertions(+), 0 deletions(-)
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..8ba3b82
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,120 @@
+# JNPF 鍏ㄦ爤 docker-compose 鎿嶄綔鍏ュ彛锛堣瑙� docs/docker-compose-guide.md锛�
+.PHONY: help jars jars-microservice flow-engine prepare web-dist check-web-dist pull-infra images preflight up up-no-pull images-offline down restart ps logs smoke
+
+# 鈹�鈹� 绗笁鏂瑰熀纭�璁炬柦闀滃儚锛歋WR 闀垮悕 鈫� 鏈湴鐭悕 鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�鈹�
+# compose 閲屽啓鐨勬槸鐭悕锛坈x-redis / cx-onlyoffice / cx-nginx锛夛紝鐢变笅闈㈢殑 pull-infra retag 鑰屾潵銆�
+# `docker tag` 鍙槸缁欏悓涓�涓� image ID 鎸傚埆鍚嶏紝涓嶅鍒舵暟鎹紙0 瀛楄妭寮�閿�锛夈��
+SWR := swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io
+
+help: ## 鏄剧ず鏈府鍔�
+ @grep -E '^[a-z-]+:.*##' $(MAKEFILE_LIST) | awk -F':.*## ' '{printf " make %-10s %s\n", $$1, $$2}'
+
+jars: ## Maven 鎵撳寘鍏ㄩ儴涓氬姟 jar锛堜笟鍔¢暅鍍忔瀯寤虹殑鍓嶇疆锛�
+ mvn clean package -DskipTests
+
+# 2026-08-11 骞冲彴鑱氬悎锛氶粯璁わ紙monolith锛変骇鍑� jnpf-platform 涓�涓� fat jar锛屽彇浠e師鏉�
+# oauth/system/visualdev/flowable/file/message/permission/visualdata/app 涔濅釜銆�
+# 涔濅釜 *-server 妯″潡鐨勬簮鐮�**淇濈暀鏈垹**锛岀敱鍚勮嚜鐖� pom 鐨� microservice profile 闂ㄦ帶銆�
+# 鍥炴粴鍒板井鏈嶅姟褰㈡�� = 鏈洰鏍� + 杩樺師 config/*/discovery.yaml 鐨勪節涓湇鍔″悕绔彛
+# + 鏀惧洖 docker-compose.yml / start-all.sh 閲岃娉ㄩ噴鐨勪節娈点�備笉闇�瑕� git revert銆�
+jars-microservice: ## 鍥炴粴鐢細鎸夊井鏈嶅姟褰㈡�佹墦鍖咃紙棰濆浜у嚭涔濅釜骞冲彴鏈嶅姟 fat jar锛�
+ mvn -P microservice clean package -DskipTests
+
+flow-engine: ## 鏋勫缓鑷湁娴佺▼寮曟搸 jar锛堢嫭绔嬪伐绋嬶紝涓嶅湪鐖� POM锛屾晠鍗曠嫭鏋勫缓锛�
+ mvn -f jnpf-flow-engine/pom.xml clean package -DskipTests
+
+# 涓氬姟闀滃儚 COPY 瀹夸富 target/*.jar锛堥潪澶氶樁娈垫瀯寤猴級锛屾晠 images 鍓嶅繀椤诲厛鏈変笟鍔� jar銆�
+# 鐢ㄥ摠鍏垫牎楠岄伩鍏�"骞插噣鏈哄櫒蹇樹簡 make jars 鈫� docker COPY 闃舵鏅︽订澶辫触"锛氱己澶卞嵆鎶ラ敊鎻愮ず銆�
+# 涓嶇洿鎺ヨ images 渚濊禆 jars锛屾槸涓轰繚鐣欐湰鍦�"缂栦竴娆°�佸弽澶嶈捣"鐨勮凯浠i�熷害锛堝叏閲� mvn 绾� 10min锛夈��
+check-jars:
+ @test -f jnpf-gateway/target/jnpf-gateway-*.jar || { \
+ echo "閿欒锛氭湭鎵惧埌涓氬姟 jar锛坖npf-gateway/target/*.jar锛�"; \
+ echo " 璇峰厛鏋勫缓鍏ㄩ儴涓氬姟 jar锛歮ake jars"; exit 1; }
+
+prepare: flow-engine ## 鏋勫缓骞舵殏瀛樿嚜寤烘祦绋嬪紩鎿� jar 鍒伴暅鍍忎笂涓嬫枃锛堜笉鍏� git锛�
+ ./docker/flow-engine/prepare-context.sh
+
+web-dist: ## 鏋勫缓鍓嶇骞跺揩鐓� dist 鍒伴暅鍍忎笂涓嬫枃锛堝墠绔粨搴撹矾寰勫彲 FRONTEND_REPO= 瑕嗙洊锛涘彧鎷蜂笉鏋勫缓 SKIP_BUILD=1锛�
+ ./docker/frontend/sync-dist.sh
+
+# 涓� check-jars 鍚岀悊锛氫笉璁� images 鐩存帴渚濊禆 web-dist锛堝墠绔瀯寤烘暟鍒嗛挓绾э級锛�
+# 鍙仛瀛樺湪鎬у摠鍏碉紱dist 鏄惁鏂伴矞鐪� docker/frontend/dist/.build-info
+check-web-dist:
+ @test -f docker/frontend/dist/index.html || { \
+ echo "閿欒锛氭湭鎵惧埌鍓嶇浜х墿锛坉ocker/frontend/dist/index.html锛�"; \
+ echo " 璇峰厛鏋勫缓鍓嶇锛歮ake web-dist"; exit 1; }
+
+pull-infra: ## 鎷夊彇绗笁鏂瑰熀纭�璁炬柦闀滃儚骞� retag 鎴愮煭鍚嶏紙cx-redis / cx-onlyoffice / cx-nginx锛�
+ docker pull --platform linux/amd64 $(SWR)/redis:8.4.0-alpine
+ docker tag $(SWR)/redis:8.4.0-alpine cx-redis:8.4.0-alpine
+ # OnlyOffice DS 鍚屾牱璧� SWR锛�2026-08-19锛夛細Hub 鐩磋繛鍦ㄥ浗鍐呯綉缁滅ǔ瀹氳秴鏃躲��
+ # 闀滃儚 ~2GB锛岄娆℃媺鍙栧亸鎱紱compose 閲屽搴旂煭鍚� cx-onlyoffice:9.4.0.1銆�
+ docker pull --platform linux/amd64 $(SWR)/onlyoffice/documentserver:9.4.0.1
+ docker tag $(SWR)/onlyoffice/documentserver:9.4.0.1 cx-onlyoffice:9.4.0.1
+ # cx-nginx 鏄� cx-web 鐨�**鏋勫缓鍩哄簳**锛圖ockerfile FROM锛夛紝涓嶆槸 compose 鐨� image 瀛楁鈥斺��
+ # 鏁呭畠鍙湪 .env 璁句簡 NGINX_BASE_IMAGE=cx-nginx:1.27-alpine 鏃惰娑堣垂锛涙湭璁惧垯璧�
+ # compose 榛樿鐨� Docker Hub 澶氭灦鏋� nginx:1.27-alpine锛坅rm64 鍘熺敓锛屼絾闇� Hub 鍙揪锛夈��
+ docker pull --platform linux/amd64 $(SWR)/nginx:1.27-alpine
+ docker tag $(SWR)/nginx:1.27-alpine cx-nginx:1.27-alpine
+ @echo "鍩虹璁炬柦闀滃儚宸插氨缁紙鐭悕 鈫� 鏋舵瀯锛夛細"
+ @for i in cx-redis:8.4.0-alpine cx-onlyoffice:9.4.0.1 cx-nginx:1.27-alpine; do \
+ printf ' %-24s %s\n' "$$i" "$$(docker image inspect --format '{{.Architecture}}' $$i 2>/dev/null || echo '缂哄け')"; \
+ done
+
+# 鍙栦唬鍘熷厛鐨� `docker compose pull --ignore-buildable`锛歝ompose 閲屾病鏈� build 娈电殑鏈嶅姟
+# 鎭板ソ灏辨槸閭d笁涓涓夋柟鍩虹璁炬柦鏈嶅姟锛坮edis/namesrv/broker锛夛紝瀹冧滑鐜板湪鐢ㄧ煭鍚嶏紝
+# 瑁� pull 浼氬幓 docker.io 鎵句笉瀛樺湪鐨勪粨搴撱�俻ull-infra 瑕嗙洊鍚屼竴鎵归暅鍍忎笖甯� retag銆�
+# --profile localdb 鏄瀯寤烘湡蹇呴』鐨勶細cx-postgres 鍦ㄨ profile 鍐咃紙榛樿涓嶅惎鍔紝瑙� compose 鏈嶅姟鍧楋級锛�
+# 涓嶅甫瀹� `compose build` 浼氳烦杩� PG 闀滃儚锛屼氦浠�/姝e紡鐜璧锋爤鏃舵墠鍙戠幇娌¢暅鍍忋��
+# 鏋勫缓鍏ㄩ泦 鈮� 鍚姩闆嗗悎锛氳繖閲屽彧淇濊瘉闀滃儚榻愶紝璧峰摢浜涙湇鍔′粛鐢� .env 鐨� COMPOSE_PROFILES 鍐冲畾銆�
+images: check-jars check-web-dist prepare pull-infra ## 纭繚鍏ㄩ儴闀滃儚灏辩华锛氳嚜寤虹殑鏋勫缓锛坈x/postgres銆乧x/flow-engine銆佷笟鍔°�佸墠绔級锛岀涓夋柟鐨勬媺鍙�+retag
+ docker compose --profile localdb build
+
+# up/up-no-pull 寮哄埗鍓嶇疆 preflight锛圔acklog C1锛夛細绌哄嵎/绌哄簱/缂� .env 閿湪 compose up 鍓嶆嫤涓嬶紝
+# 娑堢伃"绌哄簱 PG 鍗� healthy銆佷笟鍔″叏绾胯繛涓嶄笂"鐨勯潤榛樺け璐ワ紱纭璺宠繃 SKIP_PREFLIGHT=1
+preflight: ## 閮ㄧ讲鑷妇鏍¢獙锛歞ocker/鍐呭瓨/.env 蹇呭~閿�/鏁版嵁鍗�/涓夊簱 schema/绉嶅瓙鏁版嵁/鍏变韩閰嶇疆鏂囦欢/涓氬姟瑙掕壊
+ @if [ "$(SKIP_PREFLIGHT)" = "1" ]; then echo "璺宠繃 preflight锛圫KIP_PREFLIGHT=1锛�"; \
+ else ./docker/preflight.sh; fi
+
+up: images preflight ## 闀滃儚灏辩华鍚庝竴閿惎鍔ㄥ叏鏍堬紙鍐峰惎鍔ㄧ害 5-8 鍒嗛挓锛歅G鈫掍笟鍔¤嚜鍔ㄦ帓闃燂級
+ docker compose up -d
+ docker compose ps
+
+up-no-pull: preflight ## 璺宠繃鏋勫缓涓庢媺鍙栵紝鐢ㄦ湰鍦板凡鏈夐暅鍍忚捣鍏ㄦ爤锛堢绾�/蹇�熻凯浠o紱闀滃儚缂哄け鐩存帴鎶ラ敊锛�
+ docker compose up -d --no-build --pull never
+ docker compose ps
+
+images-offline: check-jars check-web-dist prepare ## 缁勮鏁存爤 amd64 绂荤嚎浜や粯鍖呭埌 dist/锛堣瑙� docs/docker-compose-guide.md 搂14锛�
+ ./docker/delivery/assemble-offline-package.sh
+
+# --profile localdb 涓嶈兘鐪侊細compose 鐨� down 鍙鐩栧綋鍓嶅惎鐢� profile 鍐呯殑鏈嶅姟锛堝疄娴嬶細profile 鍏抽棴鏃�
+# 璇ュ鍣ㄤ細琚師鏍风暀鐫�璺戯級銆傚甫涓婂畠锛屾棤璁烘湰鐜鐢ㄤ笉鐢ㄦ爤鍐� PG锛屽仠鏍堥兘鏄共鍑�鐨勶紙娌¤捣杩囧垯鏄┖鎿嶄綔锛夈��
+down: ## 鍏ㄩ儴鍋滄骞剁Щ闄ゅ鍣紙鏁版嵁瀹夊叏锛歱gdata 鏄� external 鍗凤紝姘镐笉鍒犻櫎锛�
+ docker compose --profile localdb down
+
+restart: ## 閲嶅惎鍏ㄦ爤瀹瑰櫒锛堝師鍦伴噸鍚紝涓嶉噸寤哄鍣�/涓嶄涪 MQ 鏃犳寔涔呭寲娑堟伅锛�
+ docker compose restart
+
+ps: ## 鏌ョ湅瀹瑰櫒鐘舵�佷笌鍋ュ悍
+ docker compose ps
+
+logs: ## 璺熻釜鏌愭湇鍔℃棩蹇楋細make logs s=cx-lims
+ docker compose logs -f $(s)
+
+smoke: ## 鍐掔儫涓夋锛歡ateway 鐧诲綍 + 鍓嶇闈欐�� 200 + 缁� 80 鍙嶄唬鐧诲綍锛圠017 鑴氭湰锛涗笌 site.Makefile 鍚屾缁存姢锛�
+ @set -o pipefail; \
+ MD5=$$(command -v md5 >/dev/null 2>&1 && echo md5 || echo md5sum); \
+ hash5() { if [ "$$MD5" = md5 ]; then md5; else md5sum | cut -d' ' -f1; fi; }; \
+ KEYHEX=$$(printf '%s' "$$(printf '%s' 'EY8WePvjM5GGwQzn' | hash5)" | xxd -p | tr -d '\n'); \
+ ENC=$$(printf '%s' "$$(printf '%s' '123456' | hash5)" | openssl enc -aes-256-ecb -K "$$KEYHEX" -nosalt | xxd -p | tr -d '\n'); \
+ RESP=$$(curl -fsS -X POST http://127.0.0.1:30000/api/oauth/Login -H 'Content-Type: application/x-www-form-urlencoded' \
+ --data-urlencode account=admin --data-urlencode "password=$$ENC" \
+ --data-urlencode grant_type=password --data-urlencode origin=password); \
+ echo "$$RESP" | head -c 200; echo; \
+ echo "$$RESP" | grep -q '"code":200' || { echo "鍐掔儫澶辫触锛氱櫥褰曟湭杩斿洖 code 200锛坓ateway 30000 鐩磋繛锛�"; exit 1; }; \
+ curl -fsS -o /dev/null http://127.0.0.1:80/ || { echo "鍐掔儫澶辫触锛氬墠绔潤鎬佸叆鍙� http://127.0.0.1:80/ 涓嶉��"; exit 1; }; \
+ RESP2=$$(curl -fsS -X POST http://127.0.0.1:80/api/oauth/Login -H 'Content-Type: application/x-www-form-urlencoded' \
+ --data-urlencode account=admin --data-urlencode "password=$$ENC" \
+ --data-urlencode grant_type=password --data-urlencode origin=password); \
+ echo "$$RESP2" | grep -q '"code":200' || { echo "鍐掔儫澶辫触锛氱粡鍓嶇 80 鍙嶄唬鐧诲綍鏈繑鍥� code 200"; exit 1; }; \
+ echo "鍐掔儫閫氳繃 鉁擄紙gateway 鐩磋繛 + 鍓嶇闈欐�� + 80 鍙嶄唬鐧诲綍锛�"
--
Gitblit v1.8.0