From db2b39e84604b5ed3e56d1a67273eb961d77dfe2 Mon Sep 17 00:00:00 2001 From: Codex Date: Thu, 16 Jul 2026 10:15:27 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=85=8D=E7=BD=AE=E5=85=AC=E5=85=B1?= =?UTF-8?q?=E8=BE=B9=E7=BC=98=E9=9B=86=E7=BE=A4=20DNS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/platform-infra/public-edge.yaml | 2 ++ scripts/src/platform-infra-public-edge.ts | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/config/platform-infra/public-edge.yaml b/config/platform-infra/public-edge.yaml index 3fcd034c..199e546d 100644 --- a/config/platform-infra/public-edge.yaml +++ b/config/platform-infra/public-edge.yaml @@ -34,6 +34,8 @@ targets: caddyfilePath: /opt/unidesk/pikaoa-edge/Caddyfile dataDir: /var/lib/unidesk/pikaoa-edge/caddy-data configDir: /var/lib/unidesk/pikaoa-edge/caddy-config + dnsServers: + - 10.43.0.10 responseHeaderTimeoutSeconds: 60 sites: - id: pikaoa-development diff --git a/scripts/src/platform-infra-public-edge.ts b/scripts/src/platform-infra-public-edge.ts index 7fd904ba..f2d64212 100644 --- a/scripts/src/platform-infra-public-edge.ts +++ b/scripts/src/platform-infra-public-edge.ts @@ -60,6 +60,7 @@ export interface PublicEdgeTarget { caddyfilePath: string; dataDir: string; configDir: string; + dnsServers: string[]; responseHeaderTimeoutSeconds: number; }; siteReferences: SiteReference[]; @@ -189,6 +190,7 @@ function readTarget(root: Record, requestedTargetId: string | n caddyfilePath: absolutePath(runtime.caddyfilePath, `targets.${targetId}.runtime.caddyfilePath`), dataDir: absolutePath(runtime.dataDir, `targets.${targetId}.runtime.dataDir`), configDir: absolutePath(runtime.configDir, `targets.${targetId}.runtime.configDir`), + dnsServers: array(runtime.dnsServers, `targets.${targetId}.runtime.dnsServers`).map((value, index) => ipv4(value, `targets.${targetId}.runtime.dnsServers[${index}]`)), responseHeaderTimeoutSeconds: positiveInteger(runtime.responseHeaderTimeoutSeconds, `targets.${targetId}.runtime.responseHeaderTimeoutSeconds`), }, siteReferences: sites.map((value, index) => { @@ -360,7 +362,8 @@ export function renderPublicEdgeArtifacts(target: PublicEdgeTarget, sites: Resol const protocols = target.listener.protocols.join(" "); const global = `\{\n\tservers \{\n\t\tprotocols ${protocols}\n\t\}\n\}\n`; const blocks = sites.map((site) => `${site.hostname} \{\n\treverse_proxy ${site.upstream} \{\n\t\ttransport http \{\n\t\t\tresponse_header_timeout ${target.runtime.responseHeaderTimeoutSeconds}s${site.upstreamTlsServerName === undefined ? "" : `\n\t\t\ttls_server_name ${site.upstreamTlsServerName}`}\n\t\t\}\n\t\}\n\}\n`).join("\n"); - const compose = `services:\n caddy:\n image: ${target.runtime.image}\n container_name: ${target.runtime.containerName}\n network_mode: host\n restart: unless-stopped\n volumes:\n - ${target.runtime.caddyfilePath}:/etc/caddy/Caddyfile:ro\n - ${target.runtime.dataDir}:/data\n - ${target.runtime.configDir}:/config\n`; + const dnsServers = target.runtime.dnsServers.map((server) => ` - ${server}`).join("\n"); + const compose = `services:\n caddy:\n image: ${target.runtime.image}\n container_name: ${target.runtime.containerName}\n network_mode: host\n restart: unless-stopped\n dns:\n${dnsServers}\n volumes:\n - ${target.runtime.caddyfilePath}:/etc/caddy/Caddyfile:ro\n - ${target.runtime.dataDir}:/data\n - ${target.runtime.configDir}:/config\n`; return { caddyfile: `${global}\n${blocks}`, compose }; } @@ -537,6 +540,7 @@ function targetSummary(target: PublicEdgeTarget): Record { composePath: target.runtime.composePath, dataDir: target.runtime.dataDir, configDir: target.runtime.configDir, + dnsServers: target.runtime.dnsServers, }; }