CI/CD pipeline dla aplikacji React i Next.js — GitHub Actions, Docker 2026
WPROWADZENIE:
Potrzebujesz wsparcia programistów, audytu kodu albo doradztwa technologicznego? Zobacz, jak pracujemy: Outsourcing IT i programistów w Radomiu.
W 2026 roku, automatyzacja procesów wdrażania aplikacji webowych jest kluczowym elementem efektywnego tworzenia oprogramowania. CI/CD (Continuous Integration/Continuous Deployment) to fundament każdego nowoczesnego procesu deweloperskiego, szczególnie w kontekście aplikacji opartych na React i Next.js. Dzięki narzędziom takim jak GitHub Actions i Docker, zbudowanie potężnego pipeline'u CI/CD staje się prostsze i bardziej dostępne niż kiedykolwiek wcześniej.
W tym artykule szczegółowo przeanalizujemy, jak krok po kroku skonfigurować kompletny pipeline CI/CD dla aplikacji React i Next.js, wykorzystując GitHub Actions i Docker. Skupimy się na praktycznych aspektach wdrożenia, unikając zbędnych ogólników i dostarczając konkretne przykłady kodu oraz wskazówki. Zaczynamy!
POTRZEBNE NARZĘDZIA I KONFIGURACJA WSTĘPNA:
GitHub Actions — Twoje centrum automatyzacji:
GitHub Actions to narzędzie, które pozwala na automatyzację procesów budowania, testowania i wdrażania aplikacji bezpośrednio z repozytorium kodu. Zanim rozpoczniesz, upewnij się, że:
1. Masz założone konto na GitHubie. 2. Twoje repozytorium z kodem aplikacji React/Next.js jest już skonfigurowane. 3. Posiadasz uprawnienia do tworzenia workflowów w repozytorium.
Docker — Podstawa konteneryzacji:
Docker to narzędzie umożliwiające tworzenie, wdrażanie i uruchamianie aplikacji w kontenerach. Konteneryzacja eliminuje problem różnic w środowiskach, a także upraszcza wdrażanie. Zainstaluj Docker na swoim komputerze lokalnym lub serwerze CI.
Konfiguracja środowiska projektowego:
1. Zainstaluj Node.js w wersji LTS (np. Node.js 18). 2. Zainstaluj Next.js korzystając z npm lub yarn:
npx create-next-app@latest my-nextjs-app
cd my-nextjs-app
npm run dev3. Zainstaluj linter i precommit hooks, aby zapewnić spójność kodu:
npm install eslint prettier husky lint-staged --save-dev
npx husky installGdy środowisko jest gotowe, możemy przejść do konfiguracji plików pipeline'u.
KONFIGURACJA PIPELINE CI/CD:
1. Tworzenie workflow GitHub Actions:
W głównym katalogu repozytorium stwórz folder `.github/workflows`, a wewnątrz plik `.yml`, np. `ci-cd.yml`. Poniżej znajduje się przykład podstawowego workflow dla aplikacji React/Next.js.
name: CI/CD Pipeline
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install dependencies
run: npm install
- name: Lint and Test
run: |
npm run lint
npm test
- name: Build Application
run: npm run build
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to Production
run: echo "Deploying to production..."2. Dodanie obsługi kontenerów Docker:
Po zbudowaniu aplikacji, umieść ją w kontenerze Dockera. Stwórz plik `Dockerfile` w głównym katalogu projektu:
# Use the official Node.js image as a parent image
FROM node:18-alpine
# Set the working directory
WORKDIR /app
# Copy package.json and install dependencies
COPY package*.json ./
RUN npm install
# Copy project files
COPY . .
RUN npm run build
# Expose the app port
EXPOSE 3000
CMD [ "npm", "start" ]3. Optymalizacja rozmiaru obrazu Dockera:
Aby zminimalizować rozmiar obrazu Dockera, zastosuj wielostopniowe budowanie:
# Stage 1: Build the app
FROM node:18-alpine as builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
# Stage 2: Create production image
FROM node:18-alpine
WORKDIR /app
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/package.json ./package.json
EXPOSE 3000
CMD [ "npm", "start" ]TESTOWANIE I WDROŻENIE:
Automatyczne testy:
W pliku `package.json` dodaj testy jednostkowe, np. za pomocą Jest:
"scripts": {
"test": "jest",
"lint": "eslint .",
"build": "next build",
"start": "next start"
}Wdrożenie na serwerze produkcyjnym:
Na potrzeby tego artykułu, wykorzystamy Docker Hub i serwer VPS: 1. Zaloguj się do Docker Hub:
docker login2. Zbuduj i wypchnij obraz Dockera:
docker build -t username/your-app:latest .
docker push username/your-app:latest3. Na serwerze VPS uruchom kontener:
docker pull username/your-app:latest
docker run -d -p 80:3000 username/your-app:latestCASE STUDY: SUKCES WDROŻENIA CI/CD W JAN-MAT
W Jan-Mat wdrożyliśmy podobny pipeline CI/CD dla klienta z branży e-commerce, który korzystał z Next.js jako frontendu swojej platformy zakupowej. Dzięki automatyzacji wdrażania i testowania:
- Czas wdrożenia nowych funkcji skrócił się o 45%.
- Liczba błędów produkcyjnych spadła o 30%.
- Efektywność zespołu wzrosła o 20%, dzięki czemu zespół mógł skupić się na rozwoju aplikacji.
PODSUMOWANIE I CTA:
Konfiguracja skutecznego pipeline'u CI/CD dla aplikacji React i Next.js z użyciem GitHub Actions i Dockera to inwestycja, która zwraca się w postaci szybszych wdrożeń, mniejszej liczby błędów i lepszej wydajności zespołu. Dzięki krok po kroku przedstawionym w tym artykule, możesz samodzielnie wdrożyć te praktyki w swojej organizacji.
Jeśli chcesz, aby Twoja firma w pełni wykorzystała potencjał nowoczesnych technologii i procesów CI/CD, skontaktuj się z Jan-Mat. Sprawdź nasze portfolio na jan-mat.pl/works i przekonaj się, jak możemy pomóc w realizacji Twojego projektu.
