From 96e4cd79ee71001d658c7368cd7b5a498e60e62b Mon Sep 17 00:00:00 2001 From: Joseph Garrone Date: Sun, 18 Aug 2024 21:10:18 +0200 Subject: [PATCH] Enable to configure the port via the build options --- src/bin/main.ts | 4 ++-- src/bin/shared/buildContext.ts | 8 ++++++-- src/bin/start-keycloak/start-keycloak.ts | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/bin/main.ts b/src/bin/main.ts index 7fdf420d..9f54242f 100644 --- a/src/bin/main.ts +++ b/src/bin/main.ts @@ -78,7 +78,7 @@ program program .command<{ - port: number; + port: number | undefined; keycloakVersion: string | undefined; realmJsonFilePath: string | undefined; }>({ @@ -96,7 +96,7 @@ program return name; })(), description: ["Keycloak server port.", "Example `--port 8085`"].join(" "), - defaultValue: 8080 + defaultValue: undefined }) .option({ key: "keycloakVersion", diff --git a/src/bin/shared/buildContext.ts b/src/bin/shared/buildContext.ts index 558dc216..b0c5439d 100644 --- a/src/bin/shared/buildContext.ts +++ b/src/bin/shared/buildContext.ts @@ -72,6 +72,7 @@ export type BuildContext = { keycloakExtraArgs: string[]; extensionJars: ({ type: "path"; path: string } | { type: "url"; url: string })[]; realmJsonFilePath: string | undefined; + port: number | undefined; }; }; @@ -93,6 +94,7 @@ export type BuildOptions = { keycloakExtraArgs?: string[]; extensionJars?: string[]; realmJsonFilePath?: string; + port?: number; }; } & BuildOptions.AccountThemeImplAndKeycloakVersionTargets; @@ -328,7 +330,8 @@ export function getBuildContext(params: { extensionJars: z.array(z.string()).optional(), realmJsonFilePath: z.string().optional(), dockerExtraArgs: z.array(z.string()).optional(), - keycloakExtraArgs: z.array(z.string()).optional() + keycloakExtraArgs: z.array(z.string()).optional(), + port: z.number().optional() }); assert, TargetType>>(); @@ -967,7 +970,8 @@ export function getBuildContext(params: { : getAbsoluteAndInOsFormatPath({ pathIsh: buildOptions.startKeycloakOptions.realmJsonFilePath, cwd: projectDirPath - }) + }), + port: buildOptions.startKeycloakOptions?.port } }; } diff --git a/src/bin/start-keycloak/start-keycloak.ts b/src/bin/start-keycloak/start-keycloak.ts index ca8e68db..1eaafdd8 100644 --- a/src/bin/start-keycloak/start-keycloak.ts +++ b/src/bin/start-keycloak/start-keycloak.ts @@ -29,7 +29,7 @@ import { rm } from "../tools/fs.rm"; import { downloadAndExtractArchive } from "../tools/downloadAndExtractArchive"; export type CliCommandOptions = CliCommandOptions_common & { - port: number; + port: number | undefined; keycloakVersion: string | undefined; realmJsonFilePath: string | undefined; }; @@ -337,7 +337,7 @@ export async function command(params: { cliCommandOptions: CliCommandOptions }) const SPACE_PLACEHOLDER = "SPACE_PLACEHOLDER_xKLmdPd"; const dockerRunArgs: string[] = [ - `-p${SPACE_PLACEHOLDER}${cliCommandOptions.port}:8080`, + `-p${SPACE_PLACEHOLDER}${cliCommandOptions.port ?? buildContext.startKeycloakOptions.port ?? 8080}:8080`, `--name${SPACE_PLACEHOLDER}${CONTAINER_NAME}`, `-e${SPACE_PLACEHOLDER}KEYCLOAK_ADMIN=admin`, `-e${SPACE_PLACEHOLDER}KEYCLOAK_ADMIN_PASSWORD=admin`,