0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Hướng Dẫn Xây Dựng Hình Ảnh Docker Windows Trên GitHub Actions

Đăng vào 1 tháng trước

• 4 phút đọc

Chủ đề:

Development

Hướng Dẫn Xây Dựng Hình Ảnh Docker Windows Trên GitHub Actions

Bạn có bao giờ gặp phải tình huống cần xây dựng hình ảnh Docker cho Windows nhưng lại không có máy tính Windows hỗ trợ? Đừng lo, trong bài hướng dẫn này, tôi sẽ hướng dẫn bạn cách tận dụng GitHub Actions để xây dựng hình ảnh container Windows mà không cần phải có môi trường Windows cục bộ. Cùng khám phá nhé!

Tại Sao Nên Tạo Hình Ảnh Docker Windows?

Mặc dù các container Linux rất phổ biến, nhưng container Windows vẫn cần thiết cho một số trường hợp đặc biệt, bao gồm:

  • Ứng dụng .NET Framework: Các ứng dụng sử dụng nền tảng .NET Frameword thường chỉ chạy tốt trên hệ thống Windows.
  • Ứng dụng Dành Riêng Cho Windows: Những ứng dụng yêu cầu tính năng hay API cụ thể của Windows.
  • Ứng dụng Cũ: Các ứng dụng Windows cũ cần phải được chứa trong container để đảm bảo khả năng tương thích.
  • Yêu Cầu Tính Năng Windows: Một số ứng dụng yêu cầu các tính năng đặc biệt có trên nền tảng Windows.

Điều Kiện Tiên Quyết

Trước khi bắt đầu, bạn cần:

  • Tài Khoản GitHub: Để lưu trữ mã nguồn và quản lý workflow.
  • Tài Khoản Docker Hub: Để quản lý và lưu trữ hình ảnh Docker.
  • Kho Lưu Trữ Sẵn Có: Bao gồm tệp Dockerfile và mã ứng dụng của bạn.
  • Thông Tin Đăng Nhập Docker Hub: Để thực hiện việc đăng nhập và đẩy hình ảnh.

Tệp Dockerfile Mẫu

Dưới đây là một ví dụ về Dockerfile thiết lập môi trường Python trên Windows:

Copy
# Sử dụng hình ảnh Windows Server Core mới hơn
FROM mcr.microsoft.com/windows/servercore:ltsc2022

# Thiết lập shell thành PowerShell
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]

# Tải xuống và cài đặt Python
RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; \
    Invoke-WebRequest -Uri https://www.python.org/ftp/python/3.9.5/python-3.9.5-amd64.exe -OutFile python-3.9.5-amd64.exe ; \
    Start-Process python-3.9.5-amd64.exe -ArgumentList '/quiet InstallAllUsers=1 PrependPath=1' -Wait ; \
    Remove-Item python-3.9.5-amd64.exe

# Xác minh cài đặt Python
RUN python --version

# Thiết lập thư mục làm việc
WORKDIR /app

# Sao chép tệp ứng dụng vào container
COPY . /app

# Chỉ định lệnh khởi động
CMD ["python", "app.py"]

Giải thích về Dockerfile này:

  • Sử dụng hình ảnh cơ sở mcr.microsoft.com/windows/servercore:ltsc2022.
  • Cài đặt Python phiên bản 3.9.5.
  • Đặt thư mục làm việc là /app.
  • Sao chép tất cả các tệp ứng dụng vào vùng chứa.
  • Chỉ định lệnh khởi động ứng dụng là python app.py.

Thiết Lập GitHub Actions

Để thiết lập GitHub Actions cho việc xây dựng hình ảnh Windows Docker, bạn cần tạo một tệp .github/workflows/build.yml trong kho lưu trữ của mình:

Copy
name: Build Windows Docker Image

on:
  push:
    branches: [ main ]
  workflow_dispatch:

jobs:
  build:
    runs-on: windows-latest
    environment: prod
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Login to Docker Hub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: Build and Push
        shell: powershell
        run: |
          docker build . -t ${{ secrets.DOCKERHUB_USERNAME }}/windows-python:latest
          docker push ${{ secrets.DOCKERHUB_USERNAME }}/windows-python:latest

Cách Hoạt Động Của GitHub Actions

Quy trình làm việc sẽ thực hiện các bước sau:

  1. Chạy trên windows-latest được cung cấp bởi GitHub Actions.
  2. Kiểm tra mã nguồn từ kho lưu trữ của bạn.
  3. Đăng nhập vào Docker Hub với thông tin đăng nhập mà bạn đã cấu hình.
  4. Xây dựng hình ảnh Docker Windows.
  5. Đẩy hình ảnh đã xây dựng lên Docker Hub.
  6. Cung cấp một bản tóm tắt hình ảnh để xác minh.

Lưu ý rằng trong ví dụ này, chúng ta sử dụng thẻ latest để đơn giản hóa. Trong môi trường sản xuất, bạn nên sử dụng thẻ theo phiên bản và tránh mã cứng tên hình ảnh.

Những Điều Cần Lưu Ý

  • Kích Thước Hình Ảnh: Hình ảnh Docker Windows thường lớn hơn nhiều so với các hình ảnh Linux. Hãy chuẩn bị đủ dung lượng cho kho lưu trữ của bạn.
  • Thời Gian Xây Dựng: Thời gian xây dựng container Windows thường lâu hơn so với container Linux. Hãy lưu ý điều này trong kế hoạch triển khai.
  • Khả Năng Tương Thích: Đảm bảo rằng phiên bản hình ảnh cơ sở bạn sử dụng phù hợp với môi trường triển khai của bạn.

Kết Luận

Sử dụng GitHub Actions, bạn có thể xây dựng hình ảnh Docker cho Windows mà không cần một máy tính Windows cục bộ. Đây là một giải pháp rất hữu ích cho những nhóm phát triển hoặc lập trình viên làm việc trên nhiều nền tảng khác nhau. Nếu bạn có bất kỳ câu hỏi hay thắc mắc nào, hãy để lại ý kiến ở bên dưới!

Cảm ơn bạn đã theo dõi bài viết!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào