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:
@@ -10,6 +10,7 @@ RUN npm install -g pnpm
|
|||||||
COPY package.json pnpm-lock.yaml ./
|
COPY package.json pnpm-lock.yaml ./
|
||||||
# Copy prisma directory to generate client
|
# Copy prisma directory to generate client
|
||||||
COPY prisma ./prisma/
|
COPY prisma ./prisma/
|
||||||
|
COPY prisma.config.ts ./
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
RUN pnpm install --frozen-lockfile
|
RUN pnpm install --frozen-lockfile
|
||||||
@@ -44,6 +45,7 @@ RUN adduser --system --uid 1001 nextjs
|
|||||||
# Copy necessary files
|
# Copy necessary files
|
||||||
COPY --from=builder /app/public ./public
|
COPY --from=builder /app/public ./public
|
||||||
COPY --from=builder /app/prisma ./prisma
|
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/standalone ./
|
||||||
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
|
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
services:
|
services:
|
||||||
db:
|
db:
|
||||||
image: postgres:15-alpine
|
image: postgres:15-alpine
|
||||||
container_name: portfolio-db
|
container_name: fikri-portfolio-db
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-fikri}
|
POSTGRES_USER: ${POSTGRES_USER:-fikri}
|
||||||
@@ -21,12 +21,13 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
container_name: portfolio-app
|
image: fikri-portfolio-app
|
||||||
|
container_name: fikri-portfolio-app
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- "4000:4000"
|
- "4000:4000"
|
||||||
environment:
|
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}
|
JWT_SECRET: ${JWT_SECRET}
|
||||||
R2_TOKEN: ${R2_TOKEN}
|
R2_TOKEN: ${R2_TOKEN}
|
||||||
R2_ACCESS_KEY: ${R2_ACCESS_KEY}
|
R2_ACCESS_KEY: ${R2_ACCESS_KEY}
|
||||||
@@ -37,6 +38,8 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
db:
|
db:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
extra_hosts:
|
||||||
|
- "host.docker.internal:host-gateway"
|
||||||
command: >
|
command: >
|
||||||
sh -c "npx prisma migrate deploy && node server.js"
|
sh -c "npx prisma migrate deploy && node server.js"
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
import "dotenv/config";
|
export default {
|
||||||
import { defineConfig, env } from "prisma/config";
|
|
||||||
|
|
||||||
export default defineConfig({
|
|
||||||
datasource: {
|
datasource: {
|
||||||
url: env("DATABASE_URL"),
|
url: process.env.DATABASE_URL,
|
||||||
},
|
},
|
||||||
});
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user