fix: Use lowercase alphanumeric nanoid for Docker compose project names
Docker compose requires project names to be lowercase alphanumeric with hyphens/underscores only. The default nanoid alphabet includes uppercase and special characters, causing build failures.
This commit is contained in:
@@ -67,7 +67,7 @@ vi.mock('node:fs/promises', () => ({
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
vi.mock('nanoid', () => ({
|
vi.mock('nanoid', () => ({
|
||||||
nanoid: vi.fn(() => 'abc123test'),
|
customAlphabet: vi.fn(() => vi.fn(() => 'abc123test')),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
import { PreviewManager } from './manager.js';
|
import { PreviewManager } from './manager.js';
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import { join } from 'node:path';
|
import { join } from 'node:path';
|
||||||
import { mkdir, writeFile, rm } from 'node:fs/promises';
|
import { mkdir, writeFile, rm } from 'node:fs/promises';
|
||||||
import { nanoid } from 'nanoid';
|
import { customAlphabet } from 'nanoid';
|
||||||
import type { ProjectRepository } from '../db/repositories/project-repository.js';
|
import type { ProjectRepository } from '../db/repositories/project-repository.js';
|
||||||
import type { PhaseRepository } from '../db/repositories/phase-repository.js';
|
import type { PhaseRepository } from '../db/repositories/phase-repository.js';
|
||||||
import type { InitiativeRepository } from '../db/repositories/initiative-repository.js';
|
import type { InitiativeRepository } from '../db/repositories/initiative-repository.js';
|
||||||
@@ -116,7 +116,8 @@ export class PreviewManager {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// 4. Generate ID and prepare deploy dir
|
// 4. Generate ID and prepare deploy dir
|
||||||
const id = nanoid(10);
|
const previewNanoid = customAlphabet('0123456789abcdefghijklmnopqrstuvwxyz', 10);
|
||||||
|
const id = previewNanoid();
|
||||||
const projectName = `${COMPOSE_PROJECT_PREFIX}${id}`;
|
const projectName = `${COMPOSE_PROJECT_PREFIX}${id}`;
|
||||||
const deployDir = join(this.workspaceRoot, PREVIEWS_DIR, id);
|
const deployDir = join(this.workspaceRoot, PREVIEWS_DIR, id);
|
||||||
await mkdir(deployDir, { recursive: true });
|
await mkdir(deployDir, { recursive: true });
|
||||||
|
|||||||
Reference in New Issue
Block a user