mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
70 lines
1.4 KiB
TypeScript
70 lines
1.4 KiB
TypeScript
import type { WriteStream } from "node:fs";
|
|
import {
|
|
buildCustomDocker,
|
|
getDockerCommand,
|
|
} from "@dokploy/server/utils/builders/docker-file";
|
|
import type { ApplicationNested } from ".";
|
|
import { createFile, getCreateFileCommand } from "../docker/utils";
|
|
import { getBuildAppDirectory } from "../filesystem/directory";
|
|
|
|
export const buildStatic = async (
|
|
application: ApplicationNested,
|
|
writeStream: WriteStream,
|
|
) => {
|
|
const { publishDirectory } = application;
|
|
const buildAppDirectory = getBuildAppDirectory(application);
|
|
|
|
try {
|
|
createFile(
|
|
buildAppDirectory,
|
|
"Dockerfile",
|
|
[
|
|
"FROM nginx:alpine",
|
|
"WORKDIR /usr/share/nginx/html/",
|
|
`COPY ${publishDirectory || "."} .`,
|
|
].join("\n"),
|
|
);
|
|
|
|
await buildCustomDocker(
|
|
{
|
|
...application,
|
|
buildType: "dockerfile",
|
|
dockerfile: "Dockerfile",
|
|
},
|
|
writeStream,
|
|
);
|
|
|
|
return true;
|
|
} catch (e) {
|
|
throw e;
|
|
}
|
|
};
|
|
|
|
export const getStaticCommand = (
|
|
application: ApplicationNested,
|
|
logPath: string,
|
|
) => {
|
|
const { publishDirectory } = application;
|
|
const buildAppDirectory = getBuildAppDirectory(application);
|
|
|
|
let command = getCreateFileCommand(
|
|
buildAppDirectory,
|
|
"Dockerfile",
|
|
[
|
|
"FROM nginx:alpine",
|
|
"WORKDIR /usr/share/nginx/html/",
|
|
`COPY ${publishDirectory || "."} .`,
|
|
].join("\n"),
|
|
);
|
|
|
|
command += getDockerCommand(
|
|
{
|
|
...application,
|
|
buildType: "dockerfile",
|
|
dockerfile: "Dockerfile",
|
|
},
|
|
logPath,
|
|
);
|
|
return command;
|
|
};
|