3.7 KiB
3.7 KiB
WorkFlows —— Build-images.yaml调用示例
示例 1: 根目录 Dockerfile(broccoli-api)
# .gitea/workflows/build.yml
name: Build Docker Images
on:
push:
branches:
- offline
paths:
- 'Dockerfile*'
- 'requirements.txt'
- '.gitea/workflows/build.yml'
workflow_dispatch:
jobs:
build-api:
uses: your-org/common-workflows/.gitea/workflows/reusable-docker-build.yml@main
with:
dockerfile: 'Dockerfile.api'
context: '.'
image_name: 'broccoli-api'
image_tag: 'v3.2.1'
checkout_ref: 'offline'
示例 2: 子目录 Dockerfile(broccoli-frontend)
# .gitea/workflows/build.yml
name: Build Frontend Docker Image
on:
push:
branches:
- main
paths:
- 'Frontend/**'
- '.gitea/workflows/build.yml'
workflow_dispatch:
jobs:
build-frontend:
uses: your-org/common-workflows/.gitea/workflows/reusable-docker-build.yml@main
with:
dockerfile: 'Frontend/Dockerfile'
context: 'Frontend/'
image_name: 'broccoli-frontend'
image_tag: 'v3.2.0'
示例 3: 带构建参数
# .gitea/workflows/build.yml
name: Build Docker Image
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build:
uses: your-org/common-workflows/.gitea/workflows/reusable-docker-build.yml@main
with:
dockerfile: 'Dockerfile'
context: '.'
image_name: 'my-app'
image_tag: 'v1.0.0'
build_args: |
NODE_ENV=production
APP_VERSION=v1.0.0
BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
示例 4: 多镜像构建
# .gitea/workflows/build-all.yml
name: Build All Docker Images
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build-api:
uses: your-org/common-workflows/.gitea/workflows/reusable-docker-build.yml@main
with:
dockerfile: 'Dockerfile.api'
context: '.'
image_name: 'broccoli-api'
image_tag: 'v3.2.1'
build-frontend:
uses: your-org/common-workflows/.gitea/workflows/reusable-docker-build.yml@main
with:
dockerfile: 'Frontend/Dockerfile'
context: 'Frontend/'
image_name: 'broccoli-frontend'
image_tag: 'v3.2.0'
build-worker:
needs: [build-api] # 可以设置依赖关系
uses: your-org/common-workflows/.gitea/workflows/reusable-docker-build.yml@main
with:
dockerfile: 'services/worker/Dockerfile'
context: 'services/worker'
image_name: 'broccoli-worker'
image_tag: 'v1.0.0'
示例 5: 禁用缓存
# .gitea/workflows/build.yml
name: Build Docker Image (No Cache)
on:
workflow_dispatch:
jobs:
build:
uses: your-org/common-workflows/.gitea/workflows/reusable-docker-build.yml@main
with:
dockerfile: 'Dockerfile'
context: '.'
image_name: 'my-app'
image_tag: 'latest'
enable_cache: false
示例 6: 动态版本号
# .gitea/workflows/build.yml
name: Build Docker Image
on:
push:
tags:
- 'v*'
jobs:
build:
uses: your-org/common-workflows/.gitea/workflows/reusable-docker-build.yml@main
with:
dockerfile: 'Dockerfile'
context: '.'
image_name: 'my-app'
image_tag: ${{ github.ref_name }} # 使用 tag 名称作为版本
核心特性
✅ 简洁专注 - 只做镜像构建,没有额外复杂功能
✅ 灵活路径 - 支持任意 Dockerfile 位置和构建上下文
✅ 缓存优化 - 可选的 Docker 层缓存加速构建
✅ 参数支持 - 支持传递构建参数
✅ 完整验证 - 自动验证镜像构建成功
✅ 详细日志 - 清晰的构建过程和结果展示
✅ 自动清理 - 构建后自动清理悬空镜像
这个简化版本更聚焦,更易维护!