From 2b7786fa3d7f57dfc413981938296f6762854e22 Mon Sep 17 00:00:00 2001 From: Kasra Bigdeli Date: Sat, 18 Jul 2026 23:18:32 -0700 Subject: [PATCH] Add legacy DNS aliases for new app services --- src/docker/DockerApi.ts | 48 +++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/src/docker/DockerApi.ts b/src/docker/DockerApi.ts index 0ac9d8c..dea1561 100644 --- a/src/docker/DockerApi.ts +++ b/src/docker/DockerApi.ts @@ -65,6 +65,38 @@ export abstract class IDockerUpdateOrders { } export type IDockerUpdateOrder = 'auto' | 'stopFirst' | 'startFirst' +export function getLegacyServiceDnsAlias( + serviceName: string, + namespace: string | undefined, + isLegacyAppName: boolean +) { + if (!namespace || isLegacyAppName) { + return undefined + } + + return `srv-${namespace}--${serviceName}` +} + +export function getServiceNetworkAttachments( + networks: string[], + legacyDnsAlias: string | undefined +) { + return networks.map((network) => { + const attachment: { + Target: string + Aliases?: string[] + } = { + Target: network, + } + + if (legacyDnsAlias) { + attachment.Aliases = [legacyDnsAlias] + } + + return attachment + }) +} + export interface CreateContainerParams { containerName?: string imageName: string @@ -1453,12 +1485,16 @@ class DockerApi { } if (networks) { - updatedData.TaskTemplate.Networks = [] - for (let i = 0; i < networks.length; i++) { - updatedData.TaskTemplate.Networks.push({ - Target: networks[i], - }) - } + const legacyDnsAlias = appObject + ? getLegacyServiceDnsAlias( + serviceName, + namespace, + !!appObject.isLegacyAppName + ) + : undefined + + updatedData.TaskTemplate.Networks = + getServiceNetworkAttachments(networks, legacyDnsAlias) } if (secrets) {