Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Docker Documentation25টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • Containerization
  • Architecture
  • Installation
  • Images
  • Containers
  • Dockerfile
  • Volumes
  • Networks
  • Docker Compose
  • Environment Variables
  • Node.js + Docker
  • Next.js + Docker
  • Express.js + Docker
  • NestJS + Docker
  • Databases + Docker
  • Development Workflow
  • Production
  • Multi-stage Builds
  • Security
  • Optimization
  • CI/CD
  • Deployment
  • Real-world Project
  • Interview Questions
  1. Docs
  2. Docker
  3. CI/CD Pipeline-এ Docker
DockerAdvanced

CI/CD Pipeline-এ Docker

GitHub Actions-এ Docker build, test ও registry-তে push — বাংলায়।

10টি অংশবাংলা ভাষায়

CI/CD-তে Docker-এর সুবিধা দ্বিগুণ: (১) pipeline-র নিজের run-ই container-এ হয়, (২) অ্যাপ-এর image build হয় সবসময় same way। এখন GitHub Actions দিয়ে একটি সম্পূর্ণ flow দেখি।

Workflow overview

Flowtext
text
push → build image → test (container) → push registry → deploy

GitHub Actions — build ও push

.github/workflows/docker.ymlyaml
yaml
name: Build & Push

on:
  push:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write

    steps:
      - uses: actions/checkout@v4

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Login to GHCR
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Build and push
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          tags: |
            ghcr.io/${{ github.repository }}:${{ github.sha }}
            ghcr.io/${{ github.repository }}:latest
          cache-from: type=gha
          cache-to: type=gha,mode=max

Test stage — container-এ test

Test with servicesyaml
yaml
  test:
    runs-on: ubuntu-latest
    services:
      mongo:
        image: mongo:7
        ports: ["27017:27017"]

    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: npm
      - run: npm ci
      - run: npm test
        env:
          MONGODB_URI: mongodb://127.0.0.1:27017/test

Tag version শব্দ

Semver + SHA tagsyaml
yaml
tags: |
  ghcr.io/myorg/api:${GITHUB_REF_NAME}
  ghcr.io/myorg/api:${GITHUB_SHA}
  ghcr.io/myorg/api:latest
Secrets টিপ

Registry password/host-এ GitHub Secrets ব্যবহার করুন — workflow file-এ plaintext secret রাখবেন না। gh secret set দিয়ে সেট করুন।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরImage Size ও Build OptimizationপরেরProduction Deployment
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com