feat: Containerize services with Docker Compose (PostgreSQL, Strapi CMS, Express Backend, Nginx Frontend) on custom ports >9000

This commit is contained in:
Vishva
2026-08-03 19:58:10 +05:30
parent 48f8ab9716
commit 6244fd4072
247 changed files with 56672 additions and 169 deletions
+28 -13
View File
@@ -1,22 +1,37 @@
import { cpSync } from 'fs';
import { cpSync, existsSync } from 'fs';
import { resolve, dirname } from 'path';
import { fileURLToPath } from 'url';
const __dirname = dirname(fileURLToPath(import.meta.url));
// With base: '/citpl_website/', Vite copies public/ → dist/citpl_website/
// We also mirror into dist/assets/ so the Node server's root-mount fallback works
const src = resolve(__dirname, '../public/assets');
const destPrefixed = resolve(__dirname, '../dist/citpl_website/assets');
const destRoot = resolve(__dirname, '../dist/assets');
const srcAssets = resolve(__dirname, '../public/assets');
const destAssetsPrefixed = resolve(__dirname, '../dist/citpl_website/assets');
const destAssetsRoot = resolve(__dirname, '../dist/assets');
cpSync(src, destPrefixed, { recursive: true, force: true });
cpSync(src, destRoot, { recursive: true, force: true });
console.log('✓ Copied public/assets → dist/citpl_website/assets + dist/assets');
if (existsSync(srcAssets)) {
cpSync(srcAssets, destAssetsPrefixed, { recursive: true, force: true });
cpSync(srcAssets, destAssetsRoot, { recursive: true, force: true });
console.log('✓ Copied public/assets → dist/citpl_website/assets + dist/assets');
}
// Mirror upload directories into dist/uploads and dist/citpl_website/uploads
const strapiUploads = resolve(__dirname, '../strapi-cms/public/uploads');
const publicUploads = resolve(__dirname, '../public/uploads');
const destUploadsPrefixed = resolve(__dirname, '../dist/citpl_website/uploads');
const destUploadsRoot = resolve(__dirname, '../dist/uploads');
[strapiUploads, publicUploads].forEach((dir) => {
if (existsSync(dir)) {
cpSync(dir, destUploadsPrefixed, { recursive: true, force: true });
cpSync(dir, destUploadsRoot, { recursive: true, force: true });
}
});
console.log('✓ Copied uploads → dist/citpl_website/uploads + dist/uploads');
// Ship domain-root rewrite helper with the build output
cpSync(
resolve(__dirname, '../deploy/domain-root.htaccess'),
resolve(__dirname, '../dist/domain-root.htaccess'),
{ force: true },
);
console.log('✓ Copied deploy/domain-root.htaccess → dist/domain-root.htaccess');
const htaccessPath = resolve(__dirname, '../deploy/domain-root.htaccess');
if (existsSync(htaccessPath)) {
cpSync(htaccessPath, resolve(__dirname, '../dist/domain-root.htaccess'), { force: true });
console.log('✓ Copied deploy/domain-root.htaccess → dist/domain-root.htaccess');
}