feat: Configure Docker to use host.docker.internal for database connection, include prisma.config.ts in the image, and simplify Prisma configuration.

This commit is contained in:
Moh Dzulfikri Maulana
2026-03-09 02:15:55 +07:00
parent 9abf68320a
commit b8a5ce72c1
3 changed files with 11 additions and 9 deletions

View File

@@ -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

View File

@@ -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"

View File

@@ -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,
},
});
};