mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
29 lines
971 B
TypeScript
29 lines
971 B
TypeScript
import { createWriteStream } from "node:fs";
|
|
import { writeFile } from "node:fs/promises";
|
|
import { join } from "node:path";
|
|
import type { Compose } from "@/server/api/services/compose";
|
|
import { COMPOSE_PATH } from "@/server/constants";
|
|
import { recreateDirectory } from "../filesystem/directory";
|
|
|
|
export const createComposeFile = async (compose: Compose, logPath: string) => {
|
|
const { appName, composeFile } = compose;
|
|
const writeStream = createWriteStream(logPath, { flags: "a" });
|
|
const outputPath = join(COMPOSE_PATH, appName, "code");
|
|
|
|
try {
|
|
await recreateDirectory(outputPath);
|
|
writeStream.write(
|
|
`\nCreating File 'docker-compose.yml' to ${outputPath}: ✅\n`,
|
|
);
|
|
|
|
await writeFile(join(outputPath, "docker-compose.yml"), composeFile);
|
|
|
|
writeStream.write(`\nFile 'docker-compose.yml' created: ✅\n`);
|
|
} catch (error) {
|
|
writeStream.write(`\nERROR Creating Compose File: ${error}: ❌\n`);
|
|
throw error;
|
|
} finally {
|
|
writeStream.end();
|
|
}
|
|
};
|