Build and Push Docker Image #7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build and Push Docker Image | |
| on: | |
| # 定时任务:每3天的凌晨3:33执行 | |
| schedule: | |
| - cron: '33 3 */3 * *' | |
| # 允许手动触发 | |
| workflow_dispatch: | |
| env: | |
| # Docker 镜像名称 | |
| IMAGE_NAME: archlinux | |
| # Docker Hub 用户名 | |
| DOCKER_USERNAME: akatsukiro | |
| jobs: | |
| build-and-push: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - name: Checkout 代码 | |
| uses: actions/checkout@v4 | |
| - name: 设置 Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: 登录到 Docker Hub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ env.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_HUB_TOKEN }} | |
| # 如果你使用 GitHub Container Registry,取消下面的注释并删除上面的 Docker Hub 登录步骤 | |
| # - name: 登录到 GitHub Container Registry | |
| # uses: docker/login-action@v3 | |
| # with: | |
| # registry: ghcr.io | |
| # username: ${{ github.actor }} | |
| # password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: 提取元数据 | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: | | |
| ${{ env.DOCKER_USERNAME }}/${{ env.IMAGE_NAME }} | |
| # ghcr.io/${{ github.repository }} # GitHub Container Registry | |
| tags: | | |
| type=raw,value=latest | |
| type=schedule,pattern={{date 'YYYYMMDD'}} | |
| - name: 构建并推送镜像 | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| platforms: linux/amd64 | |
| push: true | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| # GitHub Actions 版本不使用国内镜像源 | |
| build-args: | | |
| USE_MIRROR_SOURCE=false | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max |