# Docker (Next.js + NextAuth)

Bu repo **Node.js 24.12.0** ve **Yarn 1.22.22** ile Dockerize edilmiştir.

## Gereksinimler

- Docker Desktop

## Ortam Değişkenleri (ENV)

Repo kökünde `.env.local` oluşturun:

- Örnek: `env.example.txt`
- Kritik değişkenler:
  - `NEXTAUTH_URL`
  - `NEXTAUTH_SECRET`
  - `NEXT_PUBLIC_API_BASE_URL`

> Not: `.env*` dosyaları `.dockerignore` ile image içine kopyalanmaz. Compose veya `--env-file` ile verilir.

## Prod (multi-stage)

Image build:

```bash
docker build -t next-dj:prod --target runner .
```

Container run:

```bash
docker run --rm -p 3000:3000 --env-file .env.local next-dj:prod
```

## Dev (hot reload)

```bash
docker compose up --build web-dev
```

- Kod değişiklikleri otomatik yansır.
- `node_modules` ve `.next` cache için named volume kullanılır.

## Compose ile prod

```bash
docker compose up --build web-prod
```

## Sık karşılaşılabilecek sorunlar

- **Backend URL**: Docker içinde `NEXT_PUBLIC_API_BASE_URL`, `localhost` yerine container ağından erişilebilir bir host olmalı.
  - Backend de compose'ta ise çoğunlukla: `http://backend:8000/api/v1`
- **NEXTAUTH_URL**: Prod'da gerçek domaininizi yazın.
