diff --git a/Dockerfile b/Dockerfile index 5b5432b..9b104b1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,6 +10,7 @@ RUN npm install -g pnpm COPY package.json pnpm-lock.yaml ./ # Copy prisma directory to generate client COPY prisma ./prisma/ +COPY prisma.config.ts ./ # Install dependencies RUN pnpm install --frozen-lockfile @@ -44,6 +45,7 @@ RUN adduser --system --uid 1001 nextjs # Copy necessary files COPY --from=builder /app/public ./public COPY --from=builder /app/prisma ./prisma +COPY --from=builder /app/prisma.config.ts ./ COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static diff --git a/docker-compose.yml b/docker-compose.yml index e6a8964..8306160 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ services: db: image: postgres:15-alpine - container_name: portfolio-db + container_name: fikri-portfolio-db restart: always environment: POSTGRES_USER: ${POSTGRES_USER:-fikri} @@ -21,12 +21,13 @@ services: build: context: . dockerfile: Dockerfile - container_name: portfolio-app + image: fikri-portfolio-app + container_name: fikri-portfolio-app restart: always ports: - "4000:4000" environment: - DATABASE_URL: postgresql://${POSTGRES_USER:-fikri}:${POSTGRES_PASSWORD:-fikri}@db:5432/${POSTGRES_DB:-fullstack-portfolio}?schema=public + DATABASE_URL: postgresql://${POSTGRES_USER:-fikri}:${POSTGRES_PASSWORD:-fikri}@host.docker.internal:5429/${POSTGRES_DB:-fullstack-portfolio}?schema=public JWT_SECRET: ${JWT_SECRET} R2_TOKEN: ${R2_TOKEN} R2_ACCESS_KEY: ${R2_ACCESS_KEY} @@ -37,6 +38,8 @@ services: depends_on: db: condition: service_healthy + extra_hosts: + - "host.docker.internal:host-gateway" command: > sh -c "npx prisma migrate deploy && node server.js" diff --git a/prisma.config.ts b/prisma.config.ts index a7962a1..f77e8b4 100644 --- a/prisma.config.ts +++ b/prisma.config.ts @@ -1,8 +1,5 @@ -import "dotenv/config"; -import { defineConfig, env } from "prisma/config"; - -export default defineConfig({ +export default { datasource: { - url: env("DATABASE_URL"), + url: process.env.DATABASE_URL, }, -}); +};