侧边栏壁纸
博主头像
Wood Chen博主等级

独唱独酬,独行独坐还独卧

  • 累计撰写 224 篇文章
  • 累计创建 161 个标签
  • 累计收到 9 条评论

目 录CONTENT

文章目录

GitHub Actions自动构建docker镜像并上传Docker Hub

wood
2024-01-07 / 0 评论 / 1 点赞 / 165 阅读 / 1393 字

构建文件路径和内容

路径: .github/workflows/docker.yml
name: Docker

on:
  push:
    branches:
      - main
    tags:
      - v*

env:
  IMAGE_NAME: czloapi

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: 检出代码库
        uses: actions/checkout@v3

      - name: 构建镜像
        run: docker build . --file Dockerfile --tag $IMAGE_NAME

      - name: 登录到镜像仓库
        run: echo "${{ secrets.ACCESS_TOKEN }}" | docker login -u woodchen --password-stdin

      - name: 推送镜像
        run: |
          IMAGE_ID=woodchen/$IMAGE_NAME
          IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')

          # 从 GitHub 事件负载中获取分支名
          BRANCH_NAME=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')

          # 对于除了 "main" 分支和标签以外的分支,使用 "latest" 版本号
          VERSION=$(if [ "$BRANCH_NAME" == "main" ]; then echo "latest"; else echo $BRANCH_NAME; fi)

          echo IMAGE_ID=$IMAGE_ID
          echo VERSION=$VERSION

          docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
          docker push $IMAGE_ID:$VERSION

在项目中添加 secrets 方法

新版添加的地方变了

1704624243003.png

​​

完成以上流程就可以将 yml 文件 push 到 GitHub 仓库了,之后每次提交 tag 或PR成功到main分支,都会自动触发工作流,自动构建 docker image 并且自动推送到 Docker Hub 上。

1

评论区