Đăng vào

GitHub Actions build và push Docker image lên ghcr.io

Giới thiệu

GitHub Actions là một công cụ mạnh mẽ giúp tự động hóa quy trình phát triển phần mềm, bao gồm cả việc build và deploy Docker image. Với GitHub Container Registry (GHCR), bạn có thể lưu trữ và quản lý các Docker image một cách dễ dàng ngay trong hệ sinh thái GitHub.

Trong bài viết này, mình sẽ hướng dẫn bạn cách thiết lập một workflow GitHub Actions để tự động build Docker image và đẩy lên GHCR, giúp tối ưu hóa quy trình CI/CD của dự án. Cùng bắt đầu nhé! 🚀

Triển khai

docker.yaml
name: "Build and Push Docker Image"
on:
  push:
    branches:
      - main

jobs:
  build-docker:
    permissions:
      contents: read
      packages: write

    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Docker meta
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: ghcr.io/${{ github.repository_owner }}/my-image
          tags: |
            type=raw,value=latest,enable={{is_default_branch}}
            type=ref,event=branch

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v3

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

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

      - name: Build push docker image
        uses: docker/build-push-action@v6
        with:
          context: .
          file: Dockerfile
          push: true
          tags: ${{ steps.meta.outputs.tags }}
          labels: ${{ steps.meta.outputs.labels }}
          cache-from: type=gha
          cache-to: type=gha,mode=max

Demo

Chúc thành công,

ANH NGUYỄN

Hiện tại mình đang tìm kiếm công việc mới với nhiều thử thách để chinh phục.

Mọi thông tin có thể gửi về me@nvtienanh.info.