Skip to content

Commit

Permalink
Fix: Add timeout to testDockerHost (louislam#4097)
Browse files Browse the repository at this point in the history
  • Loading branch information
chakflying authored Nov 26, 2023
1 parent 2ad8af9 commit b8bd17d
Showing 1 changed file with 21 additions and 12 deletions.
33 changes: 21 additions & 12 deletions server/docker.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
const axios = require("axios");
const { R } = require("redbean-node");
const version = require("../package.json").version;
const https = require("https");
const fs = require("fs");
const path = require("path");
const Database = require("./database");
const { axiosAbortSignal } = require("./util-server");

class DockerHost {

Expand Down Expand Up @@ -70,9 +70,11 @@ class DockerHost {
static async testDockerHost(dockerHost) {
const options = {
url: "/containers/json?all=true",
timeout: 5000,
headers: {
"Accept": "*/*",
},
signal: axiosAbortSignal(6000),
};

if (dockerHost.dockerType === "socket") {
Expand All @@ -82,26 +84,33 @@ class DockerHost {
options.httpsAgent = new https.Agent(DockerHost.getHttpsAgentOptions(dockerHost.dockerType, options.baseURL));
}

let res = await axios.request(options);
try {
let res = await axios.request(options);

if (Array.isArray(res.data)) {
if (Array.isArray(res.data)) {

if (res.data.length > 1) {
if (res.data.length > 1) {

if ("ImageID" in res.data[0]) {
return res.data.length;
} else {
throw new Error("Invalid Docker response, is it Docker really a daemon?");
}

if ("ImageID" in res.data[0]) {
return res.data.length;
} else {
throw new Error("Invalid Docker response, is it Docker really a daemon?");
return res.data.length;
}

} else {
return res.data.length;
throw new Error("Invalid Docker response, is it Docker really a daemon?");
}
} catch (e) {
if (e.code === "ECONNABORTED" || e.name === "CanceledError") {
throw new Error("Connection to Docker daemon timed out.");
} else {
throw e;
}

} else {
throw new Error("Invalid Docker response, is it Docker really a daemon?");
}

}

/**
Expand Down

0 comments on commit b8bd17d

Please sign in to comment.