Merge pull request #2174 from Dokploy/2147-container-name-exceeds-63-characters-when-cloning-multiple-projects

feat(project): update application name handling during duplication
This commit is contained in:
Mauricio Siu
2025-07-11 22:53:06 -06:00
committed by GitHub

View File

@@ -360,11 +360,17 @@ export const projectRouter = createTRPCRouter({
redirects, redirects,
previewDeployments, previewDeployments,
mounts, mounts,
appName,
...application ...application
} = await findApplicationById(id); } = await findApplicationById(id);
const newAppName = appName.substring(
0,
appName.lastIndexOf("-"),
);
const newApplication = await createApplication({ const newApplication = await createApplication({
...application, ...application,
appName: newAppName,
name: input.duplicateInSameProject name: input.duplicateInSameProject
? `${application.name} (copy)` ? `${application.name} (copy)`
: application.name, : application.name,
@@ -424,11 +430,17 @@ export const projectRouter = createTRPCRouter({
break; break;
} }
case "postgres": { case "postgres": {
const { postgresId, mounts, backups, ...postgres } = const { postgresId, mounts, backups, appName, ...postgres } =
await findPostgresById(id); await findPostgresById(id);
const newAppName = appName.substring(
0,
appName.lastIndexOf("-"),
);
const newPostgres = await createPostgres({ const newPostgres = await createPostgres({
...postgres, ...postgres,
appName: newAppName,
name: input.duplicateInSameProject name: input.duplicateInSameProject
? `${postgres.name} (copy)` ? `${postgres.name} (copy)`
: postgres.name, : postgres.name,
@@ -454,10 +466,17 @@ export const projectRouter = createTRPCRouter({
break; break;
} }
case "mariadb": { case "mariadb": {
const { mariadbId, mounts, backups, ...mariadb } = const { mariadbId, mounts, backups, appName, ...mariadb } =
await findMariadbById(id); await findMariadbById(id);
const newAppName = appName.substring(
0,
appName.lastIndexOf("-"),
);
const newMariadb = await createMariadb({ const newMariadb = await createMariadb({
...mariadb, ...mariadb,
appName: newAppName,
name: input.duplicateInSameProject name: input.duplicateInSameProject
? `${mariadb.name} (copy)` ? `${mariadb.name} (copy)`
: mariadb.name, : mariadb.name,
@@ -483,10 +502,17 @@ export const projectRouter = createTRPCRouter({
break; break;
} }
case "mongo": { case "mongo": {
const { mongoId, mounts, backups, ...mongo } = const { mongoId, mounts, backups, appName, ...mongo } =
await findMongoById(id); await findMongoById(id);
const newAppName = appName.substring(
0,
appName.lastIndexOf("-"),
);
const newMongo = await createMongo({ const newMongo = await createMongo({
...mongo, ...mongo,
appName: newAppName,
name: input.duplicateInSameProject name: input.duplicateInSameProject
? `${mongo.name} (copy)` ? `${mongo.name} (copy)`
: mongo.name, : mongo.name,
@@ -512,10 +538,17 @@ export const projectRouter = createTRPCRouter({
break; break;
} }
case "mysql": { case "mysql": {
const { mysqlId, mounts, backups, ...mysql } = const { mysqlId, mounts, backups, appName, ...mysql } =
await findMySqlById(id); await findMySqlById(id);
const newAppName = appName.substring(
0,
appName.lastIndexOf("-"),
);
const newMysql = await createMysql({ const newMysql = await createMysql({
...mysql, ...mysql,
appName: newAppName,
name: input.duplicateInSameProject name: input.duplicateInSameProject
? `${mysql.name} (copy)` ? `${mysql.name} (copy)`
: mysql.name, : mysql.name,
@@ -541,9 +574,17 @@ export const projectRouter = createTRPCRouter({
break; break;
} }
case "redis": { case "redis": {
const { redisId, mounts, ...redis } = await findRedisById(id); const { redisId, mounts, appName, ...redis } =
await findRedisById(id);
const newAppName = appName.substring(
0,
appName.lastIndexOf("-"),
);
const newRedis = await createRedis({ const newRedis = await createRedis({
...redis, ...redis,
appName: newAppName,
name: input.duplicateInSameProject name: input.duplicateInSameProject
? `${redis.name} (copy)` ? `${redis.name} (copy)`
: redis.name, : redis.name,
@@ -562,10 +603,17 @@ export const projectRouter = createTRPCRouter({
break; break;
} }
case "compose": { case "compose": {
const { composeId, mounts, domains, ...compose } = const { composeId, mounts, domains, appName, ...compose } =
await findComposeById(id); await findComposeById(id);
const newAppName = appName.substring(
0,
appName.lastIndexOf("-"),
);
const newCompose = await createCompose({ const newCompose = await createCompose({
...compose, ...compose,
appName: newAppName,
name: input.duplicateInSameProject name: input.duplicateInSameProject
? `${compose.name} (copy)` ? `${compose.name} (copy)`
: compose.name, : compose.name,