mirror of
https://github.com/andwati/dokploy.git
synced 2026-11-15 16:35:17 +00:00
fix(logs): ensure safe access to service error in ShowDockerLogs component
- Updated the ShowDockerLogs component to use optional chaining when accessing the error property of services, preventing potential runtime errors. - Refactored the deployApplication function to create an applicationEntity object, ensuring consistent use of serverId across repository cloning functions. - Removed unused createEnvFile function from utils, streamlining the codebase.
This commit is contained in:
@@ -175,7 +175,7 @@ export const ShowDockerLogs = ({ appName, serverId }: Props) => {
|
|||||||
services?.find((c) => c.containerId === containerId)?.error && (
|
services?.find((c) => c.containerId === containerId)?.error && (
|
||||||
<div className="rounded-md bg-destructive/10 border border-destructive/20 px-3 py-2 text-sm text-destructive">
|
<div className="rounded-md bg-destructive/10 border border-destructive/20 px-3 py-2 text-sm text-destructive">
|
||||||
<span className="font-medium">Error: </span>
|
<span className="font-medium">Error: </span>
|
||||||
{services.find((c) => c.containerId === containerId)?.error}
|
{services?.find((c) => c.containerId === containerId)?.error}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<DockerLogs
|
<DockerLogs
|
||||||
|
|||||||
@@ -174,6 +174,10 @@ export const deployApplication = async ({
|
|||||||
}) => {
|
}) => {
|
||||||
const application = await findApplicationById(applicationId);
|
const application = await findApplicationById(applicationId);
|
||||||
const serverId = application.buildServerId || application.serverId;
|
const serverId = application.buildServerId || application.serverId;
|
||||||
|
const applicationEntity = {
|
||||||
|
...application,
|
||||||
|
serverId: serverId,
|
||||||
|
};
|
||||||
|
|
||||||
const buildLink = `${await getDokployUrl()}/dashboard/project/${application.environment.projectId}/environment/${application.environmentId}/services/application/${application.applicationId}?tab=deployments`;
|
const buildLink = `${await getDokployUrl()}/dashboard/project/${application.environment.projectId}/environment/${application.environmentId}/services/application/${application.applicationId}?tab=deployments`;
|
||||||
const deployment = await createDeployment({
|
const deployment = await createDeployment({
|
||||||
@@ -185,15 +189,15 @@ export const deployApplication = async ({
|
|||||||
try {
|
try {
|
||||||
let command = "set -e;";
|
let command = "set -e;";
|
||||||
if (application.sourceType === "github") {
|
if (application.sourceType === "github") {
|
||||||
command += await cloneGithubRepository(application);
|
command += await cloneGithubRepository(applicationEntity);
|
||||||
} else if (application.sourceType === "gitlab") {
|
} else if (application.sourceType === "gitlab") {
|
||||||
command += await cloneGitlabRepository(application);
|
command += await cloneGitlabRepository(applicationEntity);
|
||||||
} else if (application.sourceType === "gitea") {
|
} else if (application.sourceType === "gitea") {
|
||||||
command += await cloneGiteaRepository(application);
|
command += await cloneGiteaRepository(applicationEntity);
|
||||||
} else if (application.sourceType === "bitbucket") {
|
} else if (application.sourceType === "bitbucket") {
|
||||||
command += await cloneBitbucketRepository(application);
|
command += await cloneBitbucketRepository(applicationEntity);
|
||||||
} else if (application.sourceType === "git") {
|
} else if (application.sourceType === "git") {
|
||||||
command += await cloneGitRepository(application);
|
command += await cloneGitRepository(applicationEntity);
|
||||||
} else if (application.sourceType === "docker") {
|
} else if (application.sourceType === "docker") {
|
||||||
command += await buildRemoteDocker(application);
|
command += await buildRemoteDocker(application);
|
||||||
}
|
}
|
||||||
@@ -258,7 +262,6 @@ export const deployApplication = async ({
|
|||||||
type: "application",
|
type: "application",
|
||||||
serverId: serverId,
|
serverId: serverId,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (commitInfo) {
|
if (commitInfo) {
|
||||||
await updateDeployment(deployment.deploymentId, {
|
await updateDeployment(deployment.deploymentId, {
|
||||||
title: commitInfo.message,
|
title: commitInfo.message,
|
||||||
|
|||||||
@@ -1,25 +1,6 @@
|
|||||||
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
||||||
import { dirname, join } from "node:path";
|
import { dirname, join } from "node:path";
|
||||||
import { encodeBase64, prepareEnvironmentVariables } from "../docker/utils";
|
import { encodeBase64, prepareEnvironmentVariables } from "../docker/utils";
|
||||||
|
|
||||||
export const createEnvFile = (
|
|
||||||
directory: string,
|
|
||||||
env: string | null,
|
|
||||||
projectEnv?: string | null,
|
|
||||||
environmentEnv?: string | null,
|
|
||||||
) => {
|
|
||||||
const envFilePath = join(dirname(directory), ".env");
|
|
||||||
if (!existsSync(dirname(envFilePath))) {
|
|
||||||
mkdirSync(dirname(envFilePath), { recursive: true });
|
|
||||||
}
|
|
||||||
const envFileContent = prepareEnvironmentVariables(
|
|
||||||
env,
|
|
||||||
projectEnv,
|
|
||||||
environmentEnv,
|
|
||||||
).join("\n");
|
|
||||||
writeFileSync(envFilePath, envFileContent);
|
|
||||||
};
|
|
||||||
|
|
||||||
export const createEnvFileCommand = (
|
export const createEnvFileCommand = (
|
||||||
directory: string,
|
directory: string,
|
||||||
env: string | null,
|
env: string | null,
|
||||||
|
|||||||
@@ -102,7 +102,8 @@ export const removeMonitoringDirectory = async (
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const getBuildAppDirectory = (application: Application) => {
|
export const getBuildAppDirectory = (application: Application) => {
|
||||||
const { APPLICATIONS_PATH } = paths(!!application.serverId);
|
const serverId = application.buildServerId || application.serverId;
|
||||||
|
const { APPLICATIONS_PATH } = paths(!!serverId);
|
||||||
const { appName, buildType, sourceType, customGitBuildPath, dockerfile } =
|
const { appName, buildType, sourceType, customGitBuildPath, dockerfile } =
|
||||||
application;
|
application;
|
||||||
let buildPath = "";
|
let buildPath = "";
|
||||||
|
|||||||
Reference in New Issue
Block a user