package space.anyi.codesandbox.docker; import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.core.DefaultDockerClientConfig; import com.github.dockerjava.core.DockerClientConfig; import com.github.dockerjava.core.DockerClientImpl; import com.github.dockerjava.httpclient5.ApacheDockerHttpClient; import com.github.dockerjava.transport.DockerHttpClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.time.Duration; /** * @fileName: DockerClientFactory * @projectName: serve * @package: space.anyi.codesandbox.docker * @author: yangyi * @date:14/10/2026 5:44 pm * @description: Docker Client 配置类,注册 DockerClient Bean 供沙箱注入 */ @Configuration public class DockerClientFactory { @Bean public DockerClient dockerClient() { DockerClientConfig dockerClientConfig = DefaultDockerClientConfig.createDefaultConfigBuilder() .build(); DockerHttpClient httpClient = new ApacheDockerHttpClient.Builder() .dockerHost(dockerClientConfig.getDockerHost()) .maxConnections(100) .connectionTimeout(Duration.ofSeconds(30)) .responseTimeout(Duration.ofSeconds(45)) .build(); return DockerClientImpl.getInstance(dockerClientConfig, httpClient); } }