|
@@ -3,6 +3,7 @@ package com.aitori.service;
|
|
|
import com.aitori.config.DockerProperties;
|
|
import com.aitori.config.DockerProperties;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.ByteArrayOutputStream;
|
|
@@ -24,6 +25,9 @@ public class DockerLogService {
|
|
|
|
|
|
|
|
private final DockerProperties dockerProperties;
|
|
private final DockerProperties dockerProperties;
|
|
|
|
|
|
|
|
|
|
+ @Value("spring.profiles.active")
|
|
|
|
|
+ public String env;
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 通过 Docker Engine API (Unix Socket) 查询容器日志并按关键词过滤。
|
|
* 通过 Docker Engine API (Unix Socket) 查询容器日志并按关键词过滤。
|
|
|
* 需要宿主机将 /var/run/docker.sock 挂载到容器内。
|
|
* 需要宿主机将 /var/run/docker.sock 挂载到容器内。
|
|
@@ -42,11 +46,16 @@ public class DockerLogService {
|
|
|
throw new IllegalStateException(
|
|
throw new IllegalStateException(
|
|
|
"Docker socket 不存在: " + socketPath + ",请确认已挂载 -v /var/run/docker.sock:/var/run/docker.sock");
|
|
"Docker socket 不存在: " + socketPath + ",请确认已挂载 -v /var/run/docker.sock:/var/run/docker.sock");
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- String requestPath = String.format(
|
|
|
|
|
- "/v1.43/containers/%s/logs?stdout=true&stderr=true&tail=%d×tamps=true",
|
|
|
|
|
- containerName, tailLines);
|
|
|
|
|
-
|
|
|
|
|
|
|
+ String requestPath;
|
|
|
|
|
+ if(env.equals("test")){
|
|
|
|
|
+ requestPath = String.format(
|
|
|
|
|
+ "/v1.43/containers/%s/logs?stdout=true&stderr=true&tail=%d×tamps=true",
|
|
|
|
|
+ containerName, tailLines);
|
|
|
|
|
+ }else {
|
|
|
|
|
+ requestPath = String.format(
|
|
|
|
|
+ "/v1.44/containers/%s/logs?stdout=true&stderr=true&tail=%d×tamps=true",
|
|
|
|
|
+ containerName, tailLines);
|
|
|
|
|
+ }
|
|
|
byte[] rawResponse = callDockerApi(sockFile, requestPath);
|
|
byte[] rawResponse = callDockerApi(sockFile, requestPath);
|
|
|
String body = extractHttpBody(rawResponse);
|
|
String body = extractHttpBody(rawResponse);
|
|
|
|
|
|