Files
ihaleist/Dockerfile
T
hikmettan fd9c637cd1
Quality gates / test-build (push) Canceled after 0s
Quality gates / container (push) Canceled after 0s
fix healthcheck tooling in production image
2026-09-06 20:58:13 +03:00

50 lines
1.7 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Stage 1: Vite SPA build
FROM node:22-slim AS build
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# Stage 2: nginx (frontend) + node (canlı veri backend) + Playwright/Chromium
# NOT: Chromium yalnızca doğrudan temin (EKAP anti-bot) ve ihale dokümanı
# indirme için gerekli. Sunucu darlığında DT_ENABLED=0 ile kapatılabilir;
# uygulama ve diğer tüm veri kaynakları Chromium olmadan da çalışır.
FROM node:22-slim
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y --no-install-recommends nginx ca-certificates curl \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Playwright + Chromium (yalnızca chromium; sistem bağımlılıklarıyla)
ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright
ARG ENABLE_SEMANTIC_MATCH=0
ENV UYUM_GOMME=0
RUN npm init -y >/dev/null \
&& npm i --omit=dev playwright@1.62.1 \
&& if [ "$ENABLE_SEMANTIC_MATCH" = "1" ]; then npm i --omit=dev @huggingface/transformers@3; fi \
&& npx playwright install --with-deps chromium \
&& npm cache clean --force
# Frontend
COPY --from=build /app/dist /usr/share/nginx/html
COPY --from=build /app/nginx.conf /etc/nginx/sites-available/default
# Backend (Node builtin'leri + playwright)
COPY --from=build /app/server ./server
# Backend, ortak doğrulama ve iş kurallarını src/services altından import eder.
COPY --from=build /app/src ./src
# Kalıcı veri (Coolify'da /app/server/data volume olarak bağlı)
RUN mkdir -p /app/server/data
VOLUME ["/app/server/data"]
# Başlangıç: Node backend (3001) arka planda + nginx (80) ön planda.
RUN printf '#!/bin/sh\nset -e\nPORT=3001 node /app/server/index.js &\nexec nginx -g "daemon off;"\n' > /start.sh \
&& chmod +x /start.sh
EXPOSE 80
CMD ["/start.sh"]