Trước đây mình có viết 1 bài “Hướng dẫn bước từng bước tạo Docker Images tùy chỉnh với Dockerfile và Buildx“, nó là cấu hình cho bản images bibica/wordpress-wp-cli-php8.3-fpm-alpine
mà mình đang dùng trên Docker LCMP Multisite WordPress Minimal
Sau khi dùng 4-6 tháng mình nghĩ cần cập nhập mới cho phiên bản images này, chạy lại theo bài viết cũ cũng được, nhưng mình nghĩ, theo thời gian kiểu gì cũng có lúc lu bu, bận, hoặc quên vấn đề này, nên đổi sang dùng GitHub Actions để tự động mọi quá trình, khá là ngạc nhiên, vì tốc độ nó ăn đứt chuyện mình dùng VPS hay PC để tự build, lại tự động hoàn toàn, có thể set time tự chạy theo giờ mong muốn, cấu hình lại đơn giản hơn rất nhiều, nên viết thành bài này, phần để nhớ, phần để bạn nào có cùng nhu cầu có thể tham khảo
Bước 1: Tạo 1 repositories mới trên github
Có thể để công khai repositories để không giới hạn thời gian chạy GitHub Actions (set private bị giới hạn 2.000 phút mỗi tháng)
Ấn thêm tùy chọn Add a README file
để sau tạo file mới cho tiện
Bước 2: tạo file Dockerfile
Ấn vào dấu + chọn Create new file
Đặt tên file là Dockerfile
, điền nội dung Dockerfile của bạn vào vào bên dưới, sau đó ấn vào Commit changes
Bước 3: tạo Workflow mới
Ấn vào tab Actions
ở phía trên, nhấp vào Set up a workflow yourself
Bước 4: nội dung Workflow
Thay thế bibica/wordpress-wp-cli-php8.3-fpm-alpine
ở dòng 34 bằng thông tin Docker Hub của bạn
Ví dụ tài khoản của bạn trên Docker Hub có nick name là phong1982
, muốn đặt tên images là custom-wordpress
, sửa lại thành phong1982/custom-wordpress
name: Build and Push Docker Image on: schedule: # Tự động chạy hàng ngày vào 0h theo múi giờ Việt Nam (UTC+7) - cron: "0 17 * * *" workflow_dispatch: # Cho phép chạy thủ công nếu cần jobs: build-and-push: runs-on: ubuntu-22.04 steps: # Checkout mã nguồn - name: Checkout code uses: actions/checkout@v3 # Cài đặt buildx - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 # Đăng nhập vào Docker Hub - name: Log in to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} # Build và push image đa nền tảng - name: Build and push Docker image uses: docker/build-push-action@v4 with: push: true tags: bibica/wordpress-wp-cli-php8.3-fpm-alpine platforms: linux/amd64,linux/arm64
- Chạy hàng ngày vào lúc 0h (giờ Việt Nam) hoặc khi được khởi chạy thủ công
- Tải mã nguồn từ repository
- Cài đặt Docker Buildx để hỗ trợ xây dựng image đa nền tảng
- Đăng nhập vào Docker Hub bằng username + password
- Xây dựng image Docker từ mã nguồn và đẩy nó lên Docker Hub với các kiến trúc
linux/amd64
vàlinux/arm64
Xong xuôi thì ấn vào Commit changes
Bước 5: Thêm Docker Hub Credentials
- Truy cập tab
Settings
của repository. - Trong menu bên trái, chọn
Secrets and variables
>Actions
. - Nhấp vào nút
New repository secret
và thêm các thông tin:-
Name:
DOCKER_USERNAME
Secret: Tên người dùng Docker Hub của bạn. -
Name:
DOCKER_PASSWORD
Secret: Mật khẩu hoặc token truy cập Docker Hub.
-
Name:
Xong xuôi ta sẽ có 2 repository secrets
lưu trữ thông tin Username và Password tài khoản Docker Hub
Về cơ bản, lúc này mọi bước cấu hình đã hoàn tất
Bước 6: Kiểm tra lại Workflow
- Quay lại tab
Actions
. - Bạn sẽ thấy workflow
Build and Push Docker Image
trong danh sách. - Nhấp vào workflow và chọn
Run workflow
(nếu muốn chạy ngay lập tức). - Theo dõi quá trình thực thi trong giao diện (mất tầm 10-15s mới hiện ra In progress cho bạn nhìn)
Cấu hình sai chỗ nào khi chạy nó sẽ báo lỗi cụ thể để bạn biết và sửa
Mọi thứ chạy bình thường, thủ công hay tự động đều hoạt động tốt
Kết luận
Khá hài lòng với phương pháp này, GitHub Actions hoàn toàn miễn phí với các dự án công khai, tự động hóa việc xây dựng và cập nhật Docker Images tùy chỉnh, hỗ trợ đa nền tảng, lại siêu nhanh, cấu hình 1 lần xong thì có thể quên luôn vấn đề này, mọi thứ còn lại để Github và Docker xử lý 😀
Chính sách bình luận: Chúng tôi rất trân trọng các bình luận của bạn và cảm ơn thời gian bạn dành để chia sẻ ý tưởng và phản hồi.
Ghi chú: Những bình luận được xác định là spam hoặc chỉ mang tính quảng cáo sẽ bị xóa.
• Để cải thiện trải nghiệm bình luận, chúng tôi khuyến khích bạn tạo một tài khoản Gravatar. Thêm avatar vào tài khoản Gravatar sẽ giúp bình luận của bạn dễ nhận diện hơn đối với các thành viên khác.
• ✂️ Sao chép và 📋 Dán Emoji 💪 giúp bình luận thêm sinh động và thú vị!