fix(api): auto-run migrations on container start and fix ESM warning
All checks were successful
ci/woodpecker/push/api Pipeline was successful
All checks were successful
ci/woodpecker/push/api Pipeline was successful
- Add docker-entrypoint.sh that runs prisma migrate deploy before starting the app, ensuring all tables exist on deployment - Add "type": "module" to package.json to eliminate Node.js ESM reparsing warning for eslint.config.js Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -80,6 +80,9 @@ COPY --from=builder --chown=nestjs:nodejs /app/apps/api/package.json ./apps/api/
|
|||||||
# Copy app's node_modules which contains symlinks to root node_modules
|
# Copy app's node_modules which contains symlinks to root node_modules
|
||||||
COPY --from=builder --chown=nestjs:nodejs /app/apps/api/node_modules ./apps/api/node_modules
|
COPY --from=builder --chown=nestjs:nodejs /app/apps/api/node_modules ./apps/api/node_modules
|
||||||
|
|
||||||
|
# Copy entrypoint script (runs migrations before starting app)
|
||||||
|
COPY --from=builder --chown=nestjs:nodejs /app/apps/api/docker-entrypoint.sh ./apps/api/
|
||||||
|
|
||||||
# Set working directory to API app
|
# Set working directory to API app
|
||||||
WORKDIR /app/apps/api
|
WORKDIR /app/apps/api
|
||||||
|
|
||||||
@@ -96,5 +99,5 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
|
|||||||
# Use dumb-init to handle signals properly
|
# Use dumb-init to handle signals properly
|
||||||
ENTRYPOINT ["dumb-init", "--"]
|
ENTRYPOINT ["dumb-init", "--"]
|
||||||
|
|
||||||
# Start the application
|
# Run migrations then start the application
|
||||||
CMD ["node", "dist/main.js"]
|
CMD ["sh", "docker-entrypoint.sh"]
|
||||||
|
|||||||
8
apps/api/docker-entrypoint.sh
Executable file
8
apps/api/docker-entrypoint.sh
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
echo "Running database migrations..."
|
||||||
|
npx prisma migrate deploy --schema ./prisma/schema.prisma
|
||||||
|
|
||||||
|
echo "Starting application..."
|
||||||
|
exec node dist/main.js
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
"name": "@mosaic/api",
|
"name": "@mosaic/api",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "nest build",
|
"build": "nest build",
|
||||||
"dev": "nest start --watch",
|
"dev": "nest start --watch",
|
||||||
|
|||||||
Reference in New Issue
Block a user