From 9c89208d83006cbbe2e34abd4deca46cf144982c Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Tue, 3 Sep 2024 23:22:24 -0600 Subject: [PATCH] refactor: retrieve the correct names when adding a prefix --- apps/dokploy/server/api/routers/compose.ts | 6 +----- apps/dokploy/server/api/services/compose.ts | 12 +++++++++++- apps/dokploy/server/utils/docker/compose.ts | 5 ++++- apps/dokploy/server/utils/docker/domain.ts | 7 ++++++- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/apps/dokploy/server/api/routers/compose.ts b/apps/dokploy/server/api/routers/compose.ts index 62b136630..82dee89a8 100644 --- a/apps/dokploy/server/api/routers/compose.ts +++ b/apps/dokploy/server/api/routers/compose.ts @@ -152,12 +152,8 @@ export const composeRouter = createTRPCRouter({ const compose = await findComposeById(input.composeId); const domains = await findDomainsByComposeId(input.composeId); - let composeFile = await addDomainToCompose(compose, domains); + const composeFile = await addDomainToCompose(compose, domains); - if (compose.randomize && composeFile && compose.prefix) { - const result = randomizeSpecificationFile(composeFile, compose.prefix); - composeFile = result; - } return dump(composeFile, { lineWidth: 1000, }); diff --git a/apps/dokploy/server/api/services/compose.ts b/apps/dokploy/server/api/services/compose.ts index ed7833320..ca40e2c54 100644 --- a/apps/dokploy/server/api/services/compose.ts +++ b/apps/dokploy/server/api/services/compose.ts @@ -19,6 +19,7 @@ import { eq } from "drizzle-orm"; import { getDokployUrl } from "./admin"; import { createDeploymentCompose, updateDeploymentStatus } from "./deployment"; import { validUniqueServerAppName } from "./project"; +import { randomizeSpecificationFile } from "@/server/utils/docker/compose"; export type Compose = typeof compose.$inferSelect; @@ -117,7 +118,16 @@ export const loadServices = async ( await cloneCompose(compose); } - const composeData = await loadDockerCompose(compose); + let composeData = await loadDockerCompose(compose); + + if (compose.randomize && composeData) { + const randomizedCompose = randomizeSpecificationFile( + composeData, + compose.prefix, + ); + composeData = randomizedCompose; + } + if (!composeData?.services) { throw new TRPCError({ code: "NOT_FOUND", diff --git a/apps/dokploy/server/utils/docker/compose.ts b/apps/dokploy/server/utils/docker/compose.ts index 229f8da58..42a7c0f7c 100644 --- a/apps/dokploy/server/utils/docker/compose.ts +++ b/apps/dokploy/server/utils/docker/compose.ts @@ -29,8 +29,11 @@ export const randomizeComposeFile = async ( export const randomizeSpecificationFile = ( composeSpec: ComposeSpecification, - prefix: string, + prefix?: string, ) => { + if (!prefix) { + return composeSpec; + } const newComposeFile = addPrefixToAllProperties(composeSpec, prefix); return newComposeFile; }; diff --git a/apps/dokploy/server/utils/docker/domain.ts b/apps/dokploy/server/utils/docker/domain.ts index 1de7a49b2..5e08df512 100644 --- a/apps/dokploy/server/utils/docker/domain.ts +++ b/apps/dokploy/server/utils/docker/domain.ts @@ -94,12 +94,17 @@ export const addDomainToCompose = async ( domains: Domain[], ) => { const { appName } = compose; - const result = await loadDockerCompose(compose); + let result = await loadDockerCompose(compose); if (!result || domains.length === 0) { return null; } + if (compose.randomize) { + const randomized = randomizeSpecificationFile(result, compose.prefix); + result = randomized; + } + for (const domain of domains) { const { serviceName, https } = domain; if (!serviceName) {