Files
2025-12-19 05:31:18 +00:00

171 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# WorkFlows —— Build-images.yaml调用示例
### 示例 1: 根目录 Dockerfilebroccoli-api
```yaml
# .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: 子目录 Dockerfilebroccoli-frontend
```yaml
# .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: 带构建参数
```yaml
# .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: 多镜像构建
```yaml
# .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: 禁用缓存
```yaml
# .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: 动态版本号
```yaml
# .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 层缓存加速构建
**参数支持** - 支持传递构建参数
**完整验证** - 自动验证镜像构建成功
**详细日志** - 清晰的构建过程和结果展示
**自动清理** - 构建后自动清理悬空镜像
这个简化版本更聚焦,更易维护!