Problem: Docker container failed to start with REGENERATE_GIFS=true because scripts directory was not copied to production image and tsx was not available at runtime. Error: Cannot find module '/app/packages/backend/scripts/regenerate-all-gifs.ts' Root cause: 1. Dockerfile only copied dist/ and prisma/ directories, not scripts/ 2. tsx was in devDependencies, not available in production Solution: 1. Add COPY scripts directory in Dockerfile (line 69) 2. Move tsx from devDependencies to dependencies in package.json 3. Update pnpm-lock.yaml to reflect dependency change Changes: - Dockerfile: Added COPY --from=backend-builder scripts directory - package.json: Moved tsx@^4.7.0 to dependencies - pnpm-lock.yaml: Updated lockfile This allows the REGENERATE_GIFS environment variable to work correctly in production, enabling automatic GIF regeneration on container startup. Co-Authored-By: Auggie
56 lines
1.5 KiB
JSON
56 lines
1.5 KiB
JSON
{
|
|
"name": "backend",
|
|
"version": "1.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "tsx watch src/server.ts",
|
|
"build": "tsc",
|
|
"start": "node dist/server.js",
|
|
"lint": "eslint . --ext .ts",
|
|
"type-check": "tsc --noEmit",
|
|
"prisma:generate": "prisma generate",
|
|
"prisma:migrate": "prisma migrate dev",
|
|
"prisma:studio": "prisma studio",
|
|
"prisma:seed": "tsx prisma/seed.ts"
|
|
},
|
|
"prisma": {
|
|
"seed": "tsx prisma/seed.ts"
|
|
},
|
|
"dependencies": {
|
|
"express": "^4.18.2",
|
|
"cors": "^2.8.5",
|
|
"dotenv": "^16.3.1",
|
|
"@prisma/client": "^5.8.1",
|
|
"passport": "^0.7.0",
|
|
"passport-local": "^1.0.0",
|
|
"passport-google-oauth20": "^2.0.0",
|
|
"passport-microsoft": "^1.0.0",
|
|
"express-session": "^1.17.3",
|
|
"express-mysql-session": "^3.0.0",
|
|
"bcrypt": "^5.1.1",
|
|
"multer": "^1.4.5-lts.1",
|
|
"zod": "^3.22.4",
|
|
"helmet": "^7.1.0",
|
|
"express-rate-limit": "^7.1.5",
|
|
"tsx": "^4.7.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/express": "^4.17.21",
|
|
"@types/node": "^20.11.5",
|
|
"@types/cors": "^2.8.17",
|
|
"@types/passport": "^1.0.16",
|
|
"@types/passport-local": "^1.0.38",
|
|
"@types/passport-google-oauth20": "^2.0.14",
|
|
"@types/express-session": "^1.17.10",
|
|
"@types/bcrypt": "^5.0.2",
|
|
"@types/multer": "^1.4.11",
|
|
"@typescript-eslint/eslint-plugin": "^6.19.0",
|
|
"@typescript-eslint/parser": "^6.19.0",
|
|
"eslint": "^8.56.0",
|
|
"prisma": "^5.8.1",
|
|
"typescript": "^5.3.3"
|
|
}
|
|
}
|
|
|