构建文件路径和内容
路径: .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 方法
新版添加的地方变了
完成以上流程就可以将 yml 文件 push 到 GitHub 仓库了,之后每次提交 tag 或PR成功到main分支,都会自动触发工作流,自动构建 docker image 并且自动推送到 Docker Hub 上。
评论区