diff --git a/app.dockerfile b/app.dockerfile index 4e07c58..176f220 100644 --- a/app.dockerfile +++ b/app.dockerfile @@ -25,11 +25,18 @@ COPY --from=builder /home/perplexica/.next/static ./public/_next/static COPY --from=builder /home/perplexica/.next/standalone ./ COPY --from=builder /home/perplexica/data ./data +# Copy files needed for database migrations at runtime +COPY drizzle.config.ts ./ +COPY src/lib/db/schema.ts ./src/lib/db/ +COPY docker-entrypoint.sh ./ +COPY package.json ./ + RUN mkdir /home/perplexica/uploads && \ + chmod +x /home/perplexica/docker-entrypoint.sh && \ npx -y playwright install chromium --with-deps && \ - npm install playwright && \ + npm install playwright drizzle-kit && \ apt-get update && \ apt-get install -y procps && \ apt-get clean && rm -rf /var/lib/apt/lists/* -CMD ["node", "server.js"] \ No newline at end of file +CMD ["./docker-entrypoint.sh"] \ No newline at end of file diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100644 index 0000000..9ca5b72 --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +echo "🚀 Starting Perplexica..." + +# Ensure data directory exists +mkdir -p /home/perplexica/data + +# Run database schema migration +echo "📊 Updating database schema..." +npm run db:push + +# Start the application +echo "🌐 Starting Next.js server..." +exec node server.js \ No newline at end of file