import { containerName } from "../src/bin/shared/constants"; import child_process from "child_process"; import { SemVer } from "../src/bin/tools/SemVer"; import { join as pathJoin, relative as pathRelative } from "path"; import chalk from "chalk"; run( [ `docker exec -it ${containerName}`, `/opt/keycloak/bin/kc.sh export`, `--dir /tmp`, `--realm myrealm`, `--users realm_file` ].join(" ") ); const keycloakMajorVersionNumber = SemVer.parse( child_process .execSync(`docker inspect --format '{{.Config.Image}}' ${containerName}`) .toString("utf8") .trim() .split(":")[1] ).major; const targetFilePath = pathRelative( process.cwd(), pathJoin( __dirname, "..", "src", "bin", "start-keycloak", `myrealm-realm-${keycloakMajorVersionNumber}.json` ) ); run(`docker cp ${containerName}:/tmp/myrealm-realm.json ${targetFilePath}`); console.log(`${chalk.green(`✓ Exported realm to`)} ${chalk.bold(targetFilePath)}`); function run(command: string) { console.log(chalk.grey(`$ ${command}`)); return child_process.execSync(command, { stdio: "inherit" }); }