Browse Source

更新 agent 中 AgentApp 读取 WS_URL 环境变量, 使用容器启动 agent 时, 可通过此环境变量传入具体的 wsUrl

reghao 4 weeks ago
parent
commit
7bccff7b49

+ 7 - 1
agent/src/main/java/cn/reghao/devops/agent/AgentApp.java

@@ -87,8 +87,14 @@ public class AgentApp {
 
 
 			String configFilePath = ConfigFile.configFilePath(args[0], AgentApp.class);
 			String configFilePath = ConfigFile.configFilePath(args[0], AgentApp.class);
 			AgentConfig agentConfig = JsonConverter.jsonFileToObject(new File(configFilePath), AgentConfig.class);
 			AgentConfig agentConfig = JsonConverter.jsonFileToObject(new File(configFilePath), AgentConfig.class);
+			String wsUrl = agentConfig.getWsUrl();
+			String wsUrlenv = System.getenv("WS_URL");
+			if (wsUrlenv != null && !wsUrlenv.isBlank()) {
+				wsUrl = wsUrlenv;
+			}
+
 			// 4. 启动核心服务 (心跳、监控、WebSocket)
 			// 4. 启动核心服务 (心跳、监控、WebSocket)
-			WebSocketClient webSocketClient = new WebSocketClient(agentConfig);
+			WebSocketClient webSocketClient = new WebSocketClient(wsUrl);
 			webSocketClient.start();
 			webSocketClient.start();
 			shutdownGracefully(webSocketClient);
 			shutdownGracefully(webSocketClient);
 			// 6. 阻塞主线程,防止应用退出
 			// 6. 阻塞主线程,防止应用退出

+ 2 - 2
agent/src/main/java/cn/reghao/devops/agent/ws/WebSocketClient.java

@@ -41,8 +41,8 @@ public class WebSocketClient {
     private final DeployJob deployJob = new DeployJob();
     private final DeployJob deployJob = new DeployJob();
     private final AppJob appJob = new AppJob();
     private final AppJob appJob = new AppJob();
 
 
-    public WebSocketClient(AgentConfig agentConfig) {
-        this.serverUri = String.format("%s/bgws/agent?type=%s&machineId=%s", agentConfig.getWsUrl(), WsClientType.AGENT.name(), Machine.ID);
+    public WebSocketClient(String wsUrl) {
+        this.serverUri = String.format("%s/bgws/agent?type=%s&machineId=%s", wsUrl, WsClientType.AGENT.name(), Machine.ID);
     }
     }
 
 
     public void start() {
     public void start() {