| 12345678910111213141516171819202122232425262728293031323334353637 |
- 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);
- }
- }
|