# Node.js v24.12.0 kullan FROM node:24.12.0-alpine AS base # Yarn için corepack'i etkinleştir RUN corepack enable # Dependencies stage - sadece gerekli bağımlılıkları yükle FROM base AS deps WORKDIR /app # Package dosyalarını kopyala COPY package.json yarn.lock ./ RUN yarn install --frozen-lockfile # Builder stage - uygulamayı build et FROM base AS builder WORKDIR /app # Node modules'ü kopyala COPY --from=deps /app/node_modules ./node_modules COPY . . # Build için gerekli environment variables ENV NEXT_TELEMETRY_DISABLED=1 # Build-time için dummy değerler (runtime'da gerçek değerler kullanılacak) ENV DATABASE_URL="postgresql://cloud:gg7678290@database-postgist-5pcspx:5432/image_api?search_path=public" ENV BETTER_AUTH_SECRET="dB89kiKf56igxrB783yb3UyQToQIPZ93cRKADyq1yQEJ8EU4JRw5GlxBmGvQMu8e" ENV BETTER_AUTH_URL="https://image.beyhano.com.tr" ENV REGISTER_ENABLE=false # Next.js build RUN yarn build # Runner stage - production için minimal image FROM base AS runner WORKDIR /app ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 # Güvenlik için non-root user oluştur RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 nextjs # Standalone build'den dosyaları kopyala 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/public ./public USER nextjs EXPOSE 3000 ENV PORT=3000 ENV HOSTNAME="0.0.0.0" CMD ["node", "server.js"]