From 3adb87d40de29d51ecfd16f9d50e6d70e3e44fa0 Mon Sep 17 00:00:00 2001 From: Atakan Date: Fri, 28 Nov 2025 16:31:20 +0300 Subject: [PATCH] added build confs --- .gitea/workflows/build.yml | 36 ++++++++---------------------------- Dockerfile | 17 +++++++++++++++++ docker-compose.yml | 7 +++++++ nginx.conf | 14 ++++++++++++++ 4 files changed, 46 insertions(+), 28 deletions(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 nginx.conf diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 7750325..a459de5 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -1,42 +1,22 @@ -name: Build & Deploy Vite App (Docker) +name: Build & Deploy Vite App (Docker Compose) on: push: branches: - - main # kendi ana branch'ini yaz + - main # hangi branch'i takip edeceksen onu yaz jobs: build-and-deploy: - runs-on: ubuntu-latest # runner'ın default label'ı, act_runner buna sahip olmalı + runs-on: ubuntu-latest steps: - name: Kodu checkout et uses: actions/checkout@v3 - # 1) Build'i Docker container içinde çalıştır - - name: Docker ile Vite build al + - name: Docker Compose ile deploy run: | - docker run --rm \ - -v $PWD:/app \ - -w /app \ - node:24 \ - /bin/bash -lc "npm install && npm run build" + # Eski container'ları kapat + docker compose down || true - # 2) Docker image oluştur - - name: Docker image build et - run: | - docker build -t website-app:latest . - - # 3) Eski container'ı durdur / sil - - name: Eski container'ı durdur ve sil - run: | - docker stop website-app || true - docker rm website-app || true - - # 4) Yeni image ile container'ı ayağa kaldır - - name: Yeni container'ı başlat - run: | - docker run -d \ - --name website-app \ - -p 3005:80 \ - website-app:latest \ No newline at end of file + # Image'i yeniden build et ve container'ı ayağa kaldır + docker compose up -d --build diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..78c2c6e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +# Stage 1: Build +FROM node:24-alpine as build +WORKDIR /app +COPY package*.json ./ +RUN npm install +COPY . . +RUN npm run build + +# Stage 2: Production +FROM nginx:alpine +# Özel nginx ayarını kopyala +COPY nginx.conf /etc/nginx/conf.d/default.conf +# Build aşamasından çıkan dosyaları Nginx'in servis klasörüne kopyala +COPY --from=build /app/dist /usr/share/nginx/html + +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..4cc657d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,7 @@ +services: + frontend: + build: . + container_name: react-site + restart: unless-stopped + ports: + - "3005:80" # Dışarıya 3005 portunu açıyoruz, NPM buraya bakacak. diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..a45f3f9 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,14 @@ +server { + listen 80; + + location / { + root /usr/share/nginx/html; + index index.html index.htm; + try_files $uri $uri/ /index.html; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } +}