# WorkFlows —— Build-images.yaml调用示例 ### 示例 1: 根目录 Dockerfile(broccoli-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: 子目录 Dockerfile(broccoli-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 层缓存加速构建 ✅ **参数支持** - 支持传递构建参数 ✅ **完整验证** - 自动验证镜像构建成功 ✅ **详细日志** - 清晰的构建过程和结果展示 ✅ **自动清理** - 构建后自动清理悬空镜像 这个简化版本更聚焦,更易维护!