mirror of
https://github.com/ZeroCatDev/ClassworksKV.git
synced 2025-07-02 04:39:23 +00:00
25 lines
768 B
Docker
25 lines
768 B
Docker
FROM node:alpine
|
|
|
|
# Required build argument for database type
|
|
ARG DATABASE_TYPE
|
|
|
|
# Set production environment
|
|
ENV NODE_ENV=production \
|
|
DATABASE_TYPE=${DATABASE_TYPE}
|
|
|
|
# Copy all application files
|
|
COPY . .
|
|
|
|
# Copy specific database files based on DATABASE_TYPE and clean up
|
|
RUN cp -r /prisma/database/${DATABASE_TYPE}/* /prisma/ && \
|
|
rm -rf /prisma/database
|
|
|
|
# Install dependencies and generate Prisma client
|
|
RUN npm install && \
|
|
npx prisma generate
|
|
|
|
EXPOSE 3000
|
|
|
|
# Run different commands based on DATABASE_TYPE
|
|
CMD ["sh", "-c", "if [ \"$DATABASE_TYPE\" = \"sqlite\" ]; then (if [ ! -f /data/db.db ]; then npx prisma migrate dev --name init; else npx prisma migrate deploy; fi); else npx prisma migrate deploy; fi && npx prisma generate && npm run start"]
|