mirror of
https://github.com/Dokploy/dokploy.git
synced 2026-06-15 20:25:23 +02:00
feat(settings): add error handling for unsupported resource types in Traefik setup
- Introduced error handling for unsupported resource types in `readPorts` and `writeTraefikSetup` functions. - Enhanced `initializeStandaloneTraefik` to include image pulling with error logging for better debugging.
This commit is contained in:
@@ -342,6 +342,8 @@ export const readPorts = async (
|
||||
command = `docker service inspect ${resourceName} --format '{{json .Spec.EndpointSpec.Ports}}'`;
|
||||
} else if (resourceType === "standalone") {
|
||||
command = `docker container inspect ${resourceName} --format '{{json .NetworkSettings.Ports}}'`;
|
||||
} else {
|
||||
throw new Error("Resource type not found");
|
||||
}
|
||||
let result = "";
|
||||
if (serverId) {
|
||||
@@ -397,17 +399,20 @@ export const writeTraefikSetup = async (input: TraefikOptions) => {
|
||||
"dokploy-traefik",
|
||||
input.serverId,
|
||||
);
|
||||
|
||||
if (resourceType === "service") {
|
||||
await initializeTraefikService({
|
||||
env: input.env,
|
||||
additionalPorts: input.additionalPorts,
|
||||
serverId: input.serverId,
|
||||
});
|
||||
} else {
|
||||
} else if (resourceType === "standalone") {
|
||||
await initializeStandaloneTraefik({
|
||||
env: input.env,
|
||||
additionalPorts: input.additionalPorts,
|
||||
serverId: input.serverId,
|
||||
});
|
||||
} else {
|
||||
throw new Error("Traefik resource type not found");
|
||||
}
|
||||
};
|
||||
|
||||
@@ -87,16 +87,27 @@ export const initializeStandaloneTraefik = async ({
|
||||
};
|
||||
|
||||
const docker = await getRemoteDocker(serverId);
|
||||
try {
|
||||
await docker.pull(imageName);
|
||||
await new Promise((resolve) => setTimeout(resolve, 3000));
|
||||
console.log("Traefik Image Pulled ✅");
|
||||
} catch (error) {
|
||||
console.log("Traefik Image Not Found: Pulling ", error);
|
||||
}
|
||||
try {
|
||||
const container = docker.getContainer(containerName);
|
||||
await container.remove({ force: true });
|
||||
await new Promise((resolve) => setTimeout(resolve, 5000));
|
||||
} catch {}
|
||||
|
||||
await docker.createContainer(settings);
|
||||
const newContainer = docker.getContainer(containerName);
|
||||
await newContainer.start();
|
||||
console.log("Traefik Started ✅");
|
||||
try {
|
||||
await docker.createContainer(settings);
|
||||
const newContainer = docker.getContainer(containerName);
|
||||
await newContainer.start();
|
||||
console.log("Traefik Started ✅");
|
||||
} catch (error) {
|
||||
console.log("Traefik Not Found: Starting ", error);
|
||||
}
|
||||
};
|
||||
|
||||
export const initializeTraefikService = async ({
|
||||
|
||||
Reference in New Issue
Block a user