feat(setup): add async execution of docker pull for traefik image during setup

This commit is contained in:
Mauricio Siu
2025-07-05 00:01:41 -06:00
parent 9fb6ca2b3b
commit c15ee721ff
2 changed files with 2 additions and 20 deletions

View File

@@ -12,6 +12,7 @@ import {
initializeNetwork,
initializeSwarm,
} from "@dokploy/server/setup/setup";
import { execAsync } from "@dokploy/server";
(async () => {
try {
setupDirectories();
@@ -20,6 +21,7 @@ import {
await initializeNetwork();
createDefaultTraefikConfig();
createDefaultServerTraefikConfig();
await execAsync("docker pull traefik:v3.1.2");
await initializeTraefik();
await initializeRedis();
await initializePostgres();

View File

@@ -124,26 +124,6 @@ export const initializeTraefik = async ({
console.log("No existing container to remove");
}
try {
await docker.getImage(imageName).inspect();
console.log(`Image ${imageName} already exists locally.`);
} catch (error: any) {
if (error?.statusCode === 404) {
console.log(`Image ${imageName} not found, pulling...`);
const stream = await docker.pull(imageName);
await new Promise((resolve, reject) => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
docker.modem.followProgress(stream, (err: Error, res: any) =>
err ? reject(err) : resolve(res),
);
});
console.log(`Image ${imageName} pulled successfully.`);
} else {
throw error;
}
}
// Create and start the new container
try {
await docker.createContainer(settings);