mirror of
https://github.com/andwati/dokploy.git
synced 2026-10-25 22:42:18 +00:00
Merge pull request #5114 from Dokploy/fix/issue-5108-changepassword-container-check
fix: false "container is not running" on database password change
This commit is contained in:
@@ -11,7 +11,7 @@ import {
|
|||||||
findProjectById,
|
findProjectById,
|
||||||
getAccessibleServerIds,
|
getAccessibleServerIds,
|
||||||
getContainerLogs,
|
getContainerLogs,
|
||||||
getServiceContainerCommand,
|
getServiceContainer,
|
||||||
getWebServerSettings,
|
getWebServerSettings,
|
||||||
IS_CLOUD,
|
IS_CLOUD,
|
||||||
rebuildDatabase,
|
rebuildDatabase,
|
||||||
@@ -410,17 +410,17 @@ export const mariadbRouter = createTRPCRouter({
|
|||||||
const maria = await findMariadbById(mariadbId);
|
const maria = await findMariadbById(mariadbId);
|
||||||
const { appName, serverId, databaseUser, databaseRootPassword } = maria;
|
const { appName, serverId, databaseUser, databaseRootPassword } = maria;
|
||||||
|
|
||||||
const containerCmd = getServiceContainerCommand(appName);
|
const container = await getServiceContainer(appName, serverId);
|
||||||
|
if (!container) {
|
||||||
|
throw new TRPCError({
|
||||||
|
code: "BAD_REQUEST",
|
||||||
|
message: `No running container found for ${appName}`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const targetUser = type === "root" ? "root" : databaseUser;
|
const targetUser = type === "root" ? "root" : databaseUser;
|
||||||
|
|
||||||
const command = `
|
const command = `docker exec ${container.Id} mariadb -u root -p'${databaseRootPassword}' -e "ALTER USER '${targetUser}'@'%' IDENTIFIED BY '${password}'; FLUSH PRIVILEGES;"`;
|
||||||
CONTAINER_ID=$(${containerCmd})
|
|
||||||
if [ -z "$CONTAINER_ID" ]; then
|
|
||||||
echo "No running container found for ${appName}" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
docker exec "$CONTAINER_ID" mariadb -u root -p'${databaseRootPassword}' -e "ALTER USER '${targetUser}'@'%' IDENTIFIED BY '${password}'; FLUSH PRIVILEGES;"
|
|
||||||
`;
|
|
||||||
|
|
||||||
await db.transaction(async (tx) => {
|
await db.transaction(async (tx) => {
|
||||||
const setData =
|
const setData =
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import {
|
|||||||
findProjectById,
|
findProjectById,
|
||||||
getAccessibleServerIds,
|
getAccessibleServerIds,
|
||||||
getContainerLogs,
|
getContainerLogs,
|
||||||
getServiceContainerCommand,
|
getServiceContainer,
|
||||||
getWebServerSettings,
|
getWebServerSettings,
|
||||||
IS_CLOUD,
|
IS_CLOUD,
|
||||||
rebuildDatabase,
|
rebuildDatabase,
|
||||||
@@ -431,15 +431,15 @@ export const mongoRouter = createTRPCRouter({
|
|||||||
const mongo = await findMongoById(mongoId);
|
const mongo = await findMongoById(mongoId);
|
||||||
const { appName, serverId, databaseUser, databasePassword } = mongo;
|
const { appName, serverId, databaseUser, databasePassword } = mongo;
|
||||||
|
|
||||||
const containerCmd = getServiceContainerCommand(appName);
|
const container = await getServiceContainer(appName, serverId);
|
||||||
const command = `
|
if (!container) {
|
||||||
CONTAINER_ID=$(${containerCmd})
|
throw new TRPCError({
|
||||||
if [ -z "$CONTAINER_ID" ]; then
|
code: "BAD_REQUEST",
|
||||||
echo "No running container found for ${appName}" >&2
|
message: `No running container found for ${appName}`,
|
||||||
exit 1
|
});
|
||||||
fi
|
}
|
||||||
docker exec "$CONTAINER_ID" mongosh -u '${databaseUser}' -p '${databasePassword}' --authenticationDatabase admin --eval "db.getSiblingDB('admin').changeUserPassword('${databaseUser}', '${password}')"
|
|
||||||
`;
|
const command = `docker exec ${container.Id} mongosh -u '${databaseUser}' -p '${databasePassword}' --authenticationDatabase admin --eval "db.getSiblingDB('admin').changeUserPassword('${databaseUser}', '${password}')"`;
|
||||||
|
|
||||||
await db.transaction(async (tx) => {
|
await db.transaction(async (tx) => {
|
||||||
await tx
|
await tx
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import {
|
|||||||
findProjectById,
|
findProjectById,
|
||||||
getAccessibleServerIds,
|
getAccessibleServerIds,
|
||||||
getContainerLogs,
|
getContainerLogs,
|
||||||
getServiceContainerCommand,
|
getServiceContainer,
|
||||||
getWebServerSettings,
|
getWebServerSettings,
|
||||||
IS_CLOUD,
|
IS_CLOUD,
|
||||||
rebuildDatabase,
|
rebuildDatabase,
|
||||||
@@ -428,17 +428,17 @@ export const mysqlRouter = createTRPCRouter({
|
|||||||
const my = await findMySqlById(mysqlId);
|
const my = await findMySqlById(mysqlId);
|
||||||
const { appName, serverId, databaseUser, databaseRootPassword } = my;
|
const { appName, serverId, databaseUser, databaseRootPassword } = my;
|
||||||
|
|
||||||
const containerCmd = getServiceContainerCommand(appName);
|
const container = await getServiceContainer(appName, serverId);
|
||||||
|
if (!container) {
|
||||||
|
throw new TRPCError({
|
||||||
|
code: "BAD_REQUEST",
|
||||||
|
message: `No running container found for ${appName}`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const targetUser = type === "root" ? "root" : databaseUser;
|
const targetUser = type === "root" ? "root" : databaseUser;
|
||||||
|
|
||||||
const command = `
|
const command = `docker exec ${container.Id} mysql -u root -p'${databaseRootPassword}' -e "ALTER USER '${targetUser}'@'%' IDENTIFIED BY '${password}'; FLUSH PRIVILEGES;"`;
|
||||||
CONTAINER_ID=$(${containerCmd})
|
|
||||||
if [ -z "$CONTAINER_ID" ]; then
|
|
||||||
echo "No running container found for ${appName}" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
docker exec "$CONTAINER_ID" mysql -u root -p'${databaseRootPassword}' -e "ALTER USER '${targetUser}'@'%' IDENTIFIED BY '${password}'; FLUSH PRIVILEGES;"
|
|
||||||
`;
|
|
||||||
|
|
||||||
await db.transaction(async (tx) => {
|
await db.transaction(async (tx) => {
|
||||||
const setData =
|
const setData =
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import {
|
|||||||
getAccessibleServerIds,
|
getAccessibleServerIds,
|
||||||
getContainerLogs,
|
getContainerLogs,
|
||||||
getMountPath,
|
getMountPath,
|
||||||
getServiceContainerCommand,
|
getServiceContainer,
|
||||||
getWebServerSettings,
|
getWebServerSettings,
|
||||||
IS_CLOUD,
|
IS_CLOUD,
|
||||||
rebuildDatabase,
|
rebuildDatabase,
|
||||||
@@ -437,15 +437,15 @@ export const postgresRouter = createTRPCRouter({
|
|||||||
const pg = await findPostgresById(postgresId);
|
const pg = await findPostgresById(postgresId);
|
||||||
const { appName, serverId, databaseUser } = pg;
|
const { appName, serverId, databaseUser } = pg;
|
||||||
|
|
||||||
const containerCmd = getServiceContainerCommand(appName);
|
const container = await getServiceContainer(appName, serverId);
|
||||||
const command = `
|
if (!container) {
|
||||||
CONTAINER_ID=$(${containerCmd})
|
throw new TRPCError({
|
||||||
if [ -z "$CONTAINER_ID" ]; then
|
code: "BAD_REQUEST",
|
||||||
echo "No running container found for ${appName}" >&2
|
message: `No running container found for ${appName}`,
|
||||||
exit 1
|
});
|
||||||
fi
|
}
|
||||||
docker exec "$CONTAINER_ID" psql -U ${databaseUser} -c "ALTER USER \\"${databaseUser}\\" WITH PASSWORD '${password}';"
|
|
||||||
`;
|
const command = `docker exec ${container.Id} psql -U ${databaseUser} -d postgres -c "ALTER USER \\"${databaseUser}\\" WITH PASSWORD '${password}';"`;
|
||||||
|
|
||||||
await db.transaction(async (tx) => {
|
await db.transaction(async (tx) => {
|
||||||
await tx
|
await tx
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import {
|
|||||||
findRedisById,
|
findRedisById,
|
||||||
getAccessibleServerIds,
|
getAccessibleServerIds,
|
||||||
getContainerLogs,
|
getContainerLogs,
|
||||||
getServiceContainerCommand,
|
getServiceContainer,
|
||||||
getWebServerSettings,
|
getWebServerSettings,
|
||||||
IS_CLOUD,
|
IS_CLOUD,
|
||||||
rebuildDatabase,
|
rebuildDatabase,
|
||||||
@@ -418,15 +418,15 @@ export const redisRouter = createTRPCRouter({
|
|||||||
const rd = await findRedisById(redisId);
|
const rd = await findRedisById(redisId);
|
||||||
const { appName, serverId, databasePassword } = rd;
|
const { appName, serverId, databasePassword } = rd;
|
||||||
|
|
||||||
const containerCmd = getServiceContainerCommand(appName);
|
const container = await getServiceContainer(appName, serverId);
|
||||||
const command = `
|
if (!container) {
|
||||||
CONTAINER_ID=$(${containerCmd})
|
throw new TRPCError({
|
||||||
if [ -z "$CONTAINER_ID" ]; then
|
code: "BAD_REQUEST",
|
||||||
echo "No running container found for ${appName}" >&2
|
message: `No running container found for ${appName}`,
|
||||||
exit 1
|
});
|
||||||
fi
|
}
|
||||||
docker exec "$CONTAINER_ID" redis-cli -a '${databasePassword}' CONFIG SET requirepass '${password}'
|
|
||||||
`;
|
const command = `docker exec ${container.Id} redis-cli -a '${databasePassword}' CONFIG SET requirepass '${password}'`;
|
||||||
|
|
||||||
await db.transaction(async (tx) => {
|
await db.transaction(async (tx) => {
|
||||||
await tx
|
await tx
|
||||||
|
|||||||
Reference in New Issue
Block a user