mirror of
https://github.com/andwati/dokploy.git
synced 2026-11-08 21:15:17 +00:00
Merge pull request #3608 from Dokploy/3532-dokploy-is-not-updating
refactor(settings): update dokploy image handling during service update
This commit is contained in:
@@ -12,7 +12,6 @@ import {
|
|||||||
DEFAULT_UPDATE_DATA,
|
DEFAULT_UPDATE_DATA,
|
||||||
execAsync,
|
execAsync,
|
||||||
findServerById,
|
findServerById,
|
||||||
getDokployImage,
|
|
||||||
getDokployImageTag,
|
getDokployImageTag,
|
||||||
getLogCleanupStatus,
|
getLogCleanupStatus,
|
||||||
getUpdateData,
|
getUpdateData,
|
||||||
@@ -22,7 +21,6 @@ import {
|
|||||||
paths,
|
paths,
|
||||||
prepareEnvironmentVariables,
|
prepareEnvironmentVariables,
|
||||||
processLogs,
|
processLogs,
|
||||||
pullLatestRelease,
|
|
||||||
readConfig,
|
readConfig,
|
||||||
readConfigInPath,
|
readConfigInPath,
|
||||||
readDirectory,
|
readDirectory,
|
||||||
@@ -406,18 +404,17 @@ export const settingsRouter = createTRPCRouter({
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
await pullLatestRelease();
|
const data = await getUpdateData(packageInfo.version);
|
||||||
|
if (data.updateAvailable) {
|
||||||
// This causes restart of dokploy, thus it will not finish executing properly, so don't await it
|
void spawnAsync("docker", [
|
||||||
// Status after restart is checked via frontend /api/health endpoint
|
"service",
|
||||||
void spawnAsync("docker", [
|
"update",
|
||||||
"service",
|
"--force",
|
||||||
"update",
|
"--image",
|
||||||
"--force",
|
`dokploy/dokploy:${data.latestVersion}`,
|
||||||
"--image",
|
"dokploy",
|
||||||
getDokployImage(),
|
]);
|
||||||
"dokploy",
|
}
|
||||||
]);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}),
|
}),
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import { readdirSync } from "node:fs";
|
import { readdirSync } from "node:fs";
|
||||||
import { join } from "node:path";
|
import { join } from "node:path";
|
||||||
import { docker } from "@dokploy/server/constants";
|
|
||||||
import {
|
import {
|
||||||
execAsync,
|
execAsync,
|
||||||
execAsyncRemote,
|
execAsyncRemote,
|
||||||
@@ -26,19 +25,6 @@ export const getDokployImageTag = () => {
|
|||||||
return process.env.RELEASE_TAG || "latest";
|
return process.env.RELEASE_TAG || "latest";
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getDokployImage = () => {
|
|
||||||
return `dokploy/dokploy:${getDokployImageTag()}`;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const pullLatestRelease = async () => {
|
|
||||||
const stream = await docker.pull(getDokployImage());
|
|
||||||
await new Promise((resolve, reject) => {
|
|
||||||
docker.modem.followProgress(stream, (err, res) =>
|
|
||||||
err ? reject(err) : resolve(res),
|
|
||||||
);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
/** Returns Dokploy docker service image digest */
|
/** Returns Dokploy docker service image digest */
|
||||||
export const getServiceImageDigest = async () => {
|
export const getServiceImageDigest = async () => {
|
||||||
const { stdout } = await execAsync(
|
const { stdout } = await execAsync(
|
||||||
|
|||||||
Reference in New Issue
Block a user