@@ -42,6 +42,7 @@ import eu.openanalytics.shinyproxyoperator.model.ShinyProxyStatus
4242import eu.openanalytics.shinyproxyoperator.prettyMessage
4343import io.github.oshai.kotlinlogging.KotlinLogging
4444import kotlinx.coroutines.Dispatchers
45+ import kotlinx.coroutines.IO
4546import kotlinx.coroutines.channels.Channel
4647import kotlinx.coroutines.withContext
4748import org.apache.commons.lang3.RandomStringUtils
@@ -66,6 +67,7 @@ class DockerOrchestrator(channel: Channel<ShinyProxyEvent>,
6667 private val inputDir : Path ) : IOrchestrator {
6768
6869 private val dockerGID: Int = config.readConfigValue(null , " SPO_DOCKER_GID" ) { it.toInt() }
70+ private val dockerSocket: String = config.readConfigValue(" /var/run/docker.sock" , " SPO_DOCKER_SOCKET" ) { it }
6971 private val disableICC: Boolean = config.readConfigValue(false , " SPO_DISABLE_ICC" ) { it.toBoolean() }
7072 private val state = mutableMapOf<String , ShinyProxyStatus >()
7173
@@ -93,14 +95,15 @@ class DockerOrchestrator(channel: Channel<ShinyProxyEvent>,
9395 objectMapper.propertyNamingStrategy = PropertyNamingStrategies .KEBAB_CASE
9496 dockerClient = JerseyDockerClientBuilder ()
9597 .fromEnv()
98+ .uri(" unix://" + dockerSocket)
9699 .readTimeoutMillis(0 ) // no timeout, needed for startContainer and logs, #32606
97100 .build()
98101 caddyConfig = CaddyConfig (dockerClient, dataDir, config)
99102 dockerActions = DockerActions (dockerClient)
100103 shinyProxyReadyChecker = ShinyProxyReadyChecker (channel, dockerActions, dockerClient, dataDir)
101104 redisConfig = RedisConfig (dockerClient, dockerActions, persistentState, dataDir, config)
102105 craneConfig = CraneConfig (dockerClient, dockerActions, dataDir, inputDir, redisConfig, caddyConfig, persistentState)
103- monitoringConfig = MonitoringConfig (dockerClient, dockerActions, dataDir, caddyConfig, config)
106+ monitoringConfig = MonitoringConfig (dockerClient, dockerActions, dataDir, caddyConfig, config, dockerSocket )
104107 logFilesCleaner = LogFilesCleaner (dataDir.resolve(" logs" ), fileManager, dockerActions)
105108 fileManager.createDirectories(dataDir)
106109 eventWriter = FileWriter (dataDir.resolve(" events.json" ).toFile())
@@ -223,7 +226,7 @@ class DockerOrchestrator(channel: Channel<ShinyProxyEvent>,
223226 .networkMode(SHARED_NETWORK_NAME )
224227 .binds(
225228 HostConfig .Bind .builder()
226- .from(" /var/run/docker.sock " )
229+ .from(dockerSocket )
227230 .to(" /var/run/docker.sock" )
228231 .readOnly(true )
229232 .build(),
0 commit comments