Merge branch 'next' into some-tweaks
This commit is contained in:
		@@ -261,7 +261,10 @@ import * as buildpacks from '../lib/buildPacks';
 | 
			
		||||
									if (secrets.length > 0) {
 | 
			
		||||
										secrets.forEach((secret) => {
 | 
			
		||||
											if (pullmergeRequestId) {
 | 
			
		||||
												if (secret.isPRMRSecret) {
 | 
			
		||||
												const isSecretFound = secrets.filter(s => s.name === secret.name && s.isPRMRSecret)
 | 
			
		||||
												if (isSecretFound.length > 0) {
 | 
			
		||||
													envs.push(`${secret.name}=${isSecretFound[0].value}`);
 | 
			
		||||
												} else {
 | 
			
		||||
													envs.push(`${secret.name}=${secret.value}`);
 | 
			
		||||
												}
 | 
			
		||||
											} else {
 | 
			
		||||
 
 | 
			
		||||
@@ -688,7 +688,10 @@ export async function buildCacheImageWithNode(data, imageForBuild) {
 | 
			
		||||
		secrets.forEach((secret) => {
 | 
			
		||||
			if (secret.isBuildSecret) {
 | 
			
		||||
				if (pullmergeRequestId) {
 | 
			
		||||
					if (secret.isPRMRSecret) {
 | 
			
		||||
					const isSecretFound = secrets.filter(s => s.name === secret.name && s.isPRMRSecret)
 | 
			
		||||
					if (isSecretFound.length > 0) {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${isSecretFound[0].value}`);
 | 
			
		||||
					} else {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${secret.value}`);
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
@@ -707,6 +710,7 @@ export async function buildCacheImageWithNode(data, imageForBuild) {
 | 
			
		||||
		Dockerfile.push(`RUN ${installCommand}`);
 | 
			
		||||
	}
 | 
			
		||||
	Dockerfile.push(`RUN ${buildCommand}`);
 | 
			
		||||
	console.log(Dockerfile.join('\n'))
 | 
			
		||||
	await fs.writeFile(`${workdir}/Dockerfile-cache`, Dockerfile.join('\n'));
 | 
			
		||||
	await buildImage({ ...data, isCache: true });
 | 
			
		||||
}
 | 
			
		||||
@@ -722,7 +726,10 @@ export async function buildCacheImageForLaravel(data, imageForBuild) {
 | 
			
		||||
		secrets.forEach((secret) => {
 | 
			
		||||
			if (secret.isBuildSecret) {
 | 
			
		||||
				if (pullmergeRequestId) {
 | 
			
		||||
					if (secret.isPRMRSecret) {
 | 
			
		||||
					const isSecretFound = secrets.filter(s => s.name === secret.name && s.isPRMRSecret)
 | 
			
		||||
					if (isSecretFound.length > 0) {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${isSecretFound[0].value}`);
 | 
			
		||||
					} else {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${secret.value}`);
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,10 @@ const createDockerfile = async (data, image): Promise<void> => {
 | 
			
		||||
		secrets.forEach((secret) => {
 | 
			
		||||
			if (secret.isBuildSecret) {
 | 
			
		||||
				if (pullmergeRequestId) {
 | 
			
		||||
					if (secret.isPRMRSecret) {
 | 
			
		||||
					const isSecretFound = secrets.filter(s => s.name === secret.name && s.isPRMRSecret)
 | 
			
		||||
					if (isSecretFound.length > 0) {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${isSecretFound[0].value}`);
 | 
			
		||||
					} else {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${secret.value}`);
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,10 @@ const createDockerfile = async (data, image): Promise<void> => {
 | 
			
		||||
		secrets.forEach((secret) => {
 | 
			
		||||
			if (secret.isBuildSecret) {
 | 
			
		||||
				if (pullmergeRequestId) {
 | 
			
		||||
					if (secret.isPRMRSecret) {
 | 
			
		||||
					const isSecretFound = secrets.filter(s => s.name === secret.name && s.isPRMRSecret)
 | 
			
		||||
					if (isSecretFound.length > 0) {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${isSecretFound[0].value}`);
 | 
			
		||||
					} else {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${secret.value}`);
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
 
 | 
			
		||||
@@ -23,7 +23,10 @@ const createDockerfile = async (data, image): Promise<void> => {
 | 
			
		||||
		secrets.forEach((secret) => {
 | 
			
		||||
			if (secret.isBuildSecret) {
 | 
			
		||||
				if (pullmergeRequestId) {
 | 
			
		||||
					if (secret.isPRMRSecret) {
 | 
			
		||||
					const isSecretFound = secrets.filter(s => s.name === secret.name && s.isPRMRSecret)
 | 
			
		||||
					if (isSecretFound.length > 0) {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${isSecretFound[0].value}`);
 | 
			
		||||
					} else {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${secret.value}`);
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
 
 | 
			
		||||
@@ -27,7 +27,10 @@ const createDockerfile = async (data, image): Promise<void> => {
 | 
			
		||||
		secrets.forEach((secret) => {
 | 
			
		||||
			if (secret.isBuildSecret) {
 | 
			
		||||
				if (pullmergeRequestId) {
 | 
			
		||||
					if (secret.isPRMRSecret) {
 | 
			
		||||
					const isSecretFound = secrets.filter(s => s.name === secret.name && s.isPRMRSecret)
 | 
			
		||||
					if (isSecretFound.length > 0) {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${isSecretFound[0].value}`);
 | 
			
		||||
					} else {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${secret.value}`);
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,10 @@ const createDockerfile = async (data, image, htaccessFound): Promise<void> => {
 | 
			
		||||
		secrets.forEach((secret) => {
 | 
			
		||||
			if (secret.isBuildSecret) {
 | 
			
		||||
				if (pullmergeRequestId) {
 | 
			
		||||
					if (secret.isPRMRSecret) {
 | 
			
		||||
					const isSecretFound = secrets.filter(s => s.name === secret.name && s.isPRMRSecret)
 | 
			
		||||
					if (isSecretFound.length > 0) {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${isSecretFound[0].value}`);
 | 
			
		||||
					} else {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${secret.value}`);
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,10 @@ const createDockerfile = async (data, image): Promise<void> => {
 | 
			
		||||
		secrets.forEach((secret) => {
 | 
			
		||||
			if (secret.isBuildSecret) {
 | 
			
		||||
				if (pullmergeRequestId) {
 | 
			
		||||
					if (secret.isPRMRSecret) {
 | 
			
		||||
					const isSecretFound = secrets.filter(s => s.name === secret.name && s.isPRMRSecret)
 | 
			
		||||
					if (isSecretFound.length > 0) {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${isSecretFound[0].value}`);
 | 
			
		||||
					} else {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${secret.value}`);
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,10 @@ const createDockerfile = async (data, image): Promise<void> => {
 | 
			
		||||
		secrets.forEach((secret) => {
 | 
			
		||||
			if (secret.isBuildSecret) {
 | 
			
		||||
				if (pullmergeRequestId) {
 | 
			
		||||
					if (secret.isPRMRSecret) {
 | 
			
		||||
					const isSecretFound = secrets.filter(s => s.name === secret.name && s.isPRMRSecret)
 | 
			
		||||
					if (isSecretFound.length > 0) {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${isSecretFound[0].value}`);
 | 
			
		||||
					} else {
 | 
			
		||||
						Dockerfile.push(`ARG ${secret.name}=${secret.value}`);
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,7 @@ import { scheduler } from './scheduler';
 | 
			
		||||
import { supportedServiceTypesAndVersions } from './services/supportedVersions';
 | 
			
		||||
import { includeServices } from './services/common';
 | 
			
		||||
 | 
			
		||||
export const version = '3.10.0';
 | 
			
		||||
export const version = '3.10.1';
 | 
			
		||||
export const isDev = process.env.NODE_ENV === 'development';
 | 
			
		||||
 | 
			
		||||
const algorithm = 'aes-256-ctr';
 | 
			
		||||
@@ -584,9 +584,8 @@ export async function executeDockerCmd({ debug, buildId, applicationId, dockerId
 | 
			
		||||
	return await execaCommand(command, { env: { DOCKER_BUILDKIT: "1", DOCKER_HOST: engine }, shell: true })
 | 
			
		||||
}
 | 
			
		||||
export async function startTraefikProxy(id: string): Promise<void> {
 | 
			
		||||
	const { engine, network, remoteEngine, remoteIpAddress } =
 | 
			
		||||
		await prisma.destinationDocker.findUnique({ where: { id } });
 | 
			
		||||
	const found = await checkContainer({ dockerId: id, container: 'coolify-proxy', remove: true });
 | 
			
		||||
	const { engine, network, remoteEngine, remoteIpAddress } = await prisma.destinationDocker.findUnique({ where: { id } })
 | 
			
		||||
	const { found } = await checkContainer({ dockerId: id, container: 'coolify-proxy', remove: true });
 | 
			
		||||
	const { id: settingsId, ipv4, ipv6 } = await listSettings();
 | 
			
		||||
 | 
			
		||||
	if (!found) {
 | 
			
		||||
@@ -681,7 +680,7 @@ export async function configureNetworkTraefikProxy(destination: any): Promise<vo
 | 
			
		||||
export async function stopTraefikProxy(
 | 
			
		||||
	id: string
 | 
			
		||||
): Promise<{ stdout: string; stderr: string } | Error> {
 | 
			
		||||
	const found = await checkContainer({ dockerId: id, container: 'coolify-proxy' });
 | 
			
		||||
	const { found } = await checkContainer({ dockerId: id, container: 'coolify-proxy' });
 | 
			
		||||
	await prisma.destinationDocker.update({
 | 
			
		||||
		where: { id },
 | 
			
		||||
		data: { isCoolifyProxyUsed: false }
 | 
			
		||||
@@ -1125,7 +1124,7 @@ export async function stopTcpHttpProxy(
 | 
			
		||||
	const { id: dockerId } = destinationDocker;
 | 
			
		||||
	let container = `${id}-${publicPort}`;
 | 
			
		||||
	if (forceName) container = forceName;
 | 
			
		||||
	const found = await checkContainer({ dockerId, container });
 | 
			
		||||
	const { found } = await checkContainer({ dockerId, container });
 | 
			
		||||
	try {
 | 
			
		||||
		if (found) {
 | 
			
		||||
			return await executeDockerCmd({
 | 
			
		||||
@@ -1341,7 +1340,7 @@ export async function startTraefikTCPProxy(
 | 
			
		||||
): Promise<{ stdout: string; stderr: string } | Error> {
 | 
			
		||||
	const { network, id: dockerId, remoteEngine } = destinationDocker;
 | 
			
		||||
	const container = `${id}-${publicPort}`;
 | 
			
		||||
	const found = await checkContainer({ dockerId, container, remove: true });
 | 
			
		||||
	const { found } = await checkContainer({ dockerId, container, remove: true });
 | 
			
		||||
	const { ipv4, ipv6 } = await listSettings();
 | 
			
		||||
 | 
			
		||||
	let dependentId = id;
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@ export function formatLabelsOnDocker(data) {
 | 
			
		||||
		return container
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
export async function checkContainer({ dockerId, container, remove = false }: { dockerId: string, container: string, remove?: boolean }): Promise<boolean> {
 | 
			
		||||
export async function checkContainer({ dockerId, container, remove = false }: { dockerId: string, container: string, remove?: boolean }): Promise<{ found: boolean, status?: { isExited: boolean, isRunning: boolean, isRestarting: boolean } }> {
 | 
			
		||||
	let containerFound = false;
 | 
			
		||||
	try {
 | 
			
		||||
		const { stdout } = await executeDockerCmd({
 | 
			
		||||
@@ -21,10 +21,12 @@ export async function checkContainer({ dockerId, container, remove = false }: {
 | 
			
		||||
			command:
 | 
			
		||||
				`docker inspect --format '{{json .State}}' ${container}`
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		containerFound = true
 | 
			
		||||
		const parsedStdout = JSON.parse(stdout);
 | 
			
		||||
		const status = parsedStdout.Status;
 | 
			
		||||
		const isRunning = status === 'running';
 | 
			
		||||
		const isRestarting = status === 'restarting'
 | 
			
		||||
		const isExited = status === 'exited'
 | 
			
		||||
		if (status === 'created') {
 | 
			
		||||
			await executeDockerCmd({
 | 
			
		||||
				dockerId,
 | 
			
		||||
@@ -39,13 +41,23 @@ export async function checkContainer({ dockerId, container, remove = false }: {
 | 
			
		||||
					`docker rm ${container}`
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
		if (isRunning) {
 | 
			
		||||
			containerFound = true;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return {
 | 
			
		||||
			found: containerFound,
 | 
			
		||||
			status: {
 | 
			
		||||
				isRunning,
 | 
			
		||||
				isRestarting,
 | 
			
		||||
				isExited
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
		};
 | 
			
		||||
	} catch (err) {
 | 
			
		||||
		// Container not found
 | 
			
		||||
	}
 | 
			
		||||
	return containerFound;
 | 
			
		||||
	return {
 | 
			
		||||
		found: false
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export async function isContainerExited(dockerId: string, containerName: string): Promise<boolean> {
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,8 @@ export default async function ({
 | 
			
		||||
	branch,
 | 
			
		||||
	buildId,
 | 
			
		||||
	privateSshKey,
 | 
			
		||||
	customPort
 | 
			
		||||
	customPort,
 | 
			
		||||
	forPublic
 | 
			
		||||
}: {
 | 
			
		||||
	applicationId: string;
 | 
			
		||||
	workdir: string;
 | 
			
		||||
@@ -21,11 +22,15 @@ export default async function ({
 | 
			
		||||
	repodir: string;
 | 
			
		||||
	privateSshKey: string;
 | 
			
		||||
	customPort: number;
 | 
			
		||||
	forPublic: boolean;
 | 
			
		||||
}): Promise<string> {
 | 
			
		||||
	const url = htmlUrl.replace('https://', '').replace('http://', '').replace(/\/$/, '');
 | 
			
		||||
	await saveBuildLog({ line: 'GitLab importer started.', buildId, applicationId });
 | 
			
		||||
	await asyncExecShell(`echo '${privateSshKey}' > ${repodir}/id.rsa`);
 | 
			
		||||
	await asyncExecShell(`chmod 600 ${repodir}/id.rsa`);
 | 
			
		||||
 | 
			
		||||
	if (!forPublic) {
 | 
			
		||||
		await asyncExecShell(`echo '${privateSshKey}' > ${repodir}/id.rsa`);
 | 
			
		||||
		await asyncExecShell(`chmod 600 ${repodir}/id.rsa`);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	await saveBuildLog({
 | 
			
		||||
		line: `Cloning ${repository}:${branch} branch.`,
 | 
			
		||||
@@ -33,9 +38,16 @@ export default async function ({
 | 
			
		||||
		applicationId
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	await asyncExecShell(
 | 
			
		||||
		`git clone -q -b ${branch} git@${url}:${repository}.git --config core.sshCommand="ssh -p ${customPort} -q -i ${repodir}id.rsa -o StrictHostKeyChecking=no" ${workdir}/ && cd ${workdir}/ && git submodule update --init --recursive && git lfs pull && cd .. `
 | 
			
		||||
	);
 | 
			
		||||
	if (forPublic) {
 | 
			
		||||
		await asyncExecShell(
 | 
			
		||||
			`git clone -q -b ${branch} git@${url}:${repository}.git --config core.sshCommand="ssh -p ${customPort} -q -o StrictHostKeyChecking=no" ${workdir}/ && cd ${workdir}/ && git submodule update --init --recursive && git lfs pull && cd .. `
 | 
			
		||||
		);
 | 
			
		||||
	} else {
 | 
			
		||||
		await asyncExecShell(
 | 
			
		||||
			`git clone -q -b ${branch} git@${url}:${repository}.git --config core.sshCommand="ssh -p ${customPort} -q -i ${repodir}id.rsa -o StrictHostKeyChecking=no" ${workdir}/ && cd ${workdir}/ && git submodule update --init --recursive && git lfs pull && cd .. `
 | 
			
		||||
		);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	const { stdout: commit } = await asyncExecShell(`cd ${workdir}/ && git rev-parse HEAD`);
 | 
			
		||||
	return commit.replace('\n', '');
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1116,7 +1116,6 @@ async function startUmamiService(request: FastifyRequest<ServiceStartStop>) {
 | 
			
		||||
            },
 | 
			
		||||
            volumes: volumeMounts
 | 
			
		||||
        };
 | 
			
		||||
        console.log(composeFile)
 | 
			
		||||
        const composeFileDestination = `${workdir}/docker-compose.yaml`;
 | 
			
		||||
        await fs.writeFile(composeFileDestination, yaml.dump(composeFile));
 | 
			
		||||
        await startServiceContainers(destinationDocker.id, composeFileDestination)
 | 
			
		||||
 
 | 
			
		||||
@@ -74,14 +74,21 @@ export async function getApplicationStatus(request: FastifyRequest<OnlyId>) {
 | 
			
		||||
        const { teamId } = request.user
 | 
			
		||||
        let isRunning = false;
 | 
			
		||||
        let isExited = false;
 | 
			
		||||
 | 
			
		||||
        let isRestarting = false;
 | 
			
		||||
        const application: any = await getApplicationFromDB(id, teamId);
 | 
			
		||||
        if (application?.destinationDockerId) {
 | 
			
		||||
            isRunning = await checkContainer({ dockerId: application.destinationDocker.id, container: id });
 | 
			
		||||
            isExited = await isContainerExited(application.destinationDocker.id, id);
 | 
			
		||||
            const status = await checkContainer({ dockerId: application.destinationDocker.id, container: id });
 | 
			
		||||
            if (status?.found) {
 | 
			
		||||
                isRunning = status.status.isRunning;
 | 
			
		||||
                isExited = status.status.isExited;
 | 
			
		||||
                isRestarting = status.status.isRestarting
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // isExited = await isContainerExited(application.destinationDocker.id, id);
 | 
			
		||||
        }
 | 
			
		||||
        return {
 | 
			
		||||
            isRunning,
 | 
			
		||||
            isRestarting,
 | 
			
		||||
            isExited,
 | 
			
		||||
        };
 | 
			
		||||
    } catch ({ status, message }) {
 | 
			
		||||
@@ -339,7 +346,7 @@ export async function stopPreviewApplication(request: FastifyRequest<StopPreview
 | 
			
		||||
        if (application?.destinationDockerId) {
 | 
			
		||||
            const container = `${id}-${pullmergeRequestId}`
 | 
			
		||||
            const { id: dockerId } = application.destinationDocker;
 | 
			
		||||
            const found = await checkContainer({ dockerId, container });
 | 
			
		||||
            const { found } = await checkContainer({ dockerId, container });
 | 
			
		||||
            if (found) {
 | 
			
		||||
                await removeContainer({ id: container, dockerId: application.destinationDocker.id });
 | 
			
		||||
            }
 | 
			
		||||
@@ -366,7 +373,10 @@ export async function restartApplication(request: FastifyRequest<OnlyId>, reply:
 | 
			
		||||
            if (secrets.length > 0) {
 | 
			
		||||
                secrets.forEach((secret) => {
 | 
			
		||||
                    if (pullmergeRequestId) {
 | 
			
		||||
                        if (secret.isPRMRSecret) {
 | 
			
		||||
                        const isSecretFound = secrets.filter(s => s.name === secret.name && s.isPRMRSecret)
 | 
			
		||||
                        if (isSecretFound.length > 0) {
 | 
			
		||||
                            envs.push(`${secret.name}=${isSecretFound[0].value}`);
 | 
			
		||||
                        } else {
 | 
			
		||||
                            envs.push(`${secret.name}=${secret.value}`);
 | 
			
		||||
                        }
 | 
			
		||||
                    } else {
 | 
			
		||||
@@ -463,7 +473,7 @@ export async function stopApplication(request: FastifyRequest<OnlyId>, reply: Fa
 | 
			
		||||
        const application: any = await getApplicationFromDB(id, teamId);
 | 
			
		||||
        if (application?.destinationDockerId) {
 | 
			
		||||
            const { id: dockerId } = application.destinationDocker;
 | 
			
		||||
            const found = await checkContainer({ dockerId, container: id });
 | 
			
		||||
            const { found } = await checkContainer({ dockerId, container: id });
 | 
			
		||||
            if (found) {
 | 
			
		||||
                await removeContainer({ id, dockerId: application.destinationDocker.id });
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
@@ -229,7 +229,7 @@ export async function getDestinationStatus(request: FastifyRequest<OnlyId>) {
 | 
			
		||||
    try {
 | 
			
		||||
        const { id } = request.params
 | 
			
		||||
        const destination = await prisma.destinationDocker.findUnique({ where: { id } })
 | 
			
		||||
        const isRunning = await checkContainer({ dockerId: destination.id, container: 'coolify-proxy', remove: true })
 | 
			
		||||
        const { found: isRunning } = await checkContainer({ dockerId: destination.id, container: 'coolify-proxy', remove: true })
 | 
			
		||||
        return {
 | 
			
		||||
            isRunning
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -43,13 +43,17 @@ export async function getServiceStatus(request: FastifyRequest<OnlyId>) {
 | 
			
		||||
 | 
			
		||||
        let isRunning = false;
 | 
			
		||||
        let isExited = false
 | 
			
		||||
 | 
			
		||||
        let isRestarting = false;
 | 
			
		||||
        const service = await getServiceFromDB({ id, teamId });
 | 
			
		||||
        const { destinationDockerId, settings } = service;
 | 
			
		||||
 | 
			
		||||
        if (destinationDockerId) {
 | 
			
		||||
            isRunning = await checkContainer({ dockerId: service.destinationDocker.id, container: id });
 | 
			
		||||
            isExited = await isContainerExited(service.destinationDocker.id, id);
 | 
			
		||||
            const status = await checkContainer({ dockerId: service.destinationDocker.id, container: id });
 | 
			
		||||
            if (status?.found) {
 | 
			
		||||
                isRunning = status.status.isRunning;
 | 
			
		||||
                isExited = status.status.isExited;
 | 
			
		||||
                isRestarting = status.status.isRestarting
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return {
 | 
			
		||||
            isRunning,
 | 
			
		||||
@@ -554,7 +558,7 @@ export async function activateWordpressFtp(request: FastifyRequest<ActivateWordp
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
                try {
 | 
			
		||||
                    const isRunning = await checkContainer({ dockerId: destinationDocker.id, container: `${id}-ftp` });
 | 
			
		||||
                    const { found: isRunning } = await checkContainer({ dockerId: destinationDocker.id, container: `${id}-ftp` });
 | 
			
		||||
                    if (isRunning) {
 | 
			
		||||
                        await executeDockerCmd({
 | 
			
		||||
                            dockerId: destinationDocker.id,
 | 
			
		||||
 
 | 
			
		||||
@@ -154,7 +154,7 @@ export async function gitHubEvents(request: FastifyRequest<GitHubEvents>): Promi
 | 
			
		||||
 | 
			
		||||
                    if (application.settings.previews) {
 | 
			
		||||
                        if (application.destinationDockerId) {
 | 
			
		||||
                            const isRunning = await checkContainer(
 | 
			
		||||
                            const { found: isRunning } = await checkContainer(
 | 
			
		||||
                                {
 | 
			
		||||
                                    dockerId: application.destinationDocker.id,
 | 
			
		||||
                                    container: application.id
 | 
			
		||||
 
 | 
			
		||||
@@ -107,7 +107,7 @@ export async function gitLabEvents(request: FastifyRequest<GitLabEvents>) {
 | 
			
		||||
                    const buildId = cuid();
 | 
			
		||||
                    if (application.settings.previews) {
 | 
			
		||||
                        if (application.destinationDockerId) {
 | 
			
		||||
                            const isRunning = await checkContainer(
 | 
			
		||||
                            const { found: isRunning } = await checkContainer(
 | 
			
		||||
                                {
 | 
			
		||||
                                    dockerId: application.destinationDocker.id,
 | 
			
		||||
                                    container: application.id
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user