拂衣天氣(微天氣)Github Action映象自動構建與推送

拂衣志發表於2024-05-04

前言

這裡暫不作過多的操作,還是保持與此前一致。即透過Github Action完成Docker Image的build與push,目標倉庫為阿里雲容器映象服務例項(個人版)registry.cn-hangzhou.aliyuncs.com

那麼一共分為三個部分:

  • Dockerfile編寫
  • 阿里雲容器映象服務配置
  • Github Action

Dockerfile編寫

  • jdk17
  • gradle
FROM gradle:jdk17-alpine AS build

# 設定語言,支援中文
ENV LANG C.UTF-8

COPY --chown=gradle:gradle . /opt/gradle/src
WORKDIR /opt/gradle/src
RUN gradle clean build -x test --no-daemon

FROM eclipse-temurin:17-jdk-jammy

COPY --from=build /opt/gradle/src/build/libs/*.jar /usr/app/

WORKDIR /usr/app/

RUN sh -c 'touch micro-weather-backend-1.0.0-RELEASE.jar'

ENTRYPOINT ["java", "-jar", "micro-weather-backend-1.0.0-RELEASE.jar"]

Github Action

  1. 先在阿里雲映象服務中建立名稱空間

  2. 建立倉庫(可選,因為可以自動建立)

  3. 編寫Github Action指令碼

    micro-weather-github-action-01

    name: Micro Weather Service Image Build And Push CI
    
    on:
    push:
        branches:
        - 'main'
    jobs:
    docker:
        runs-on: ubuntu-latest
        steps:
        - name: Checkout
            uses: actions/checkout@v2
    
        # setup-qemu 如果您想使用 QEMU 新增模擬支援以便能夠針對更多平臺進行構建,則 action 會很有用
        - name: Set up QEMU
            uses: docker/setup-qemu-action@v1
    
        # setup-buildx-action 將預設使用docker-container 構建器驅動程式建立和引導構建器。非必需
        - name: Set up Docker Buildx
            uses: docker/setup-buildx-action@v1
    
        - name: Login to Aliyun DockerHub
            uses: docker/login-action@v1
            with:
            registry: ${{secrets.ALIYUN_DOCKERHUB_REGISTRY}}
            username: ${{ secrets.ALIYUN_DOCKERHUB_USERNAME }}
            password: ${{ secrets.ALIYUN_DOCKERHUB_TOKEN }}
    
        - name: Build and push
            uses: docker/build-push-action@v2
            with:
            push: true
            tags: registry.cn-hangzhou.aliyuncs.com/fuyi-atlas/micro-weather:latest
    
  4. 設定環境變數

    micro-weather-github-action-02

    micro-weather-github-action-03

    micro-weather-github-action-04

  5. 觸發Action測試(提交程式碼)

    第一次失敗是因為我是直接在github上面新增的action配置,透過commit提交後直接觸發了action動作,但是此時還沒有配置環境變數,所以失敗了。所以可以在action觸發前將環境變數設定好就不會失敗了。

    micro-weather-github-action-05

    micro-weather-github-action-06

參考文件

  • 在github上使用workflow構建docker映象並推送阿里雲

💡 Github Action指令碼內容來自於網路,存在少許更改。但由於記不得來源,所以沒有做出記錄

相關文章