前言
這裡暫不作過多的操作,還是保持與此前一致。即透過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
-
先在阿里雲映象服務中建立名稱空間
-
建立倉庫(可選,因為可以自動建立)
-
編寫Github Action指令碼
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
-
設定環境變數
-
觸發Action測試(提交程式碼)
第一次失敗是因為我是直接在github上面新增的action配置,透過commit提交後直接觸發了action動作,但是此時還沒有配置環境變數,所以失敗了。所以可以在action觸發前將環境變數設定好就不會失敗了。
參考文件
- 在github上使用workflow構建docker映象並推送阿里雲
💡 Github Action指令碼內容來自於網路,存在少許更改。但由於記不得來源,所以沒有做出記錄