From c1bed582148dec525e4e0eb7046a4d161f195922 Mon Sep 17 00:00:00 2001 From: Erich Blume Date: Sat, 11 Apr 2026 16:54:17 -0700 Subject: [PATCH] Flag Dockerfile containers for Dagger migration during service review The service-review checklist now shows a "Dagger Migration" hint when a container still uses a Dockerfile without a container.py. The review-services doc also mentions migration as a review step. Co-Authored-By: Claude Opus 4.6 (1M context) --- docs/how-to/knowledgebase/review-services.md | 1 + mise-tasks/service-review | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/how-to/knowledgebase/review-services.md b/docs/how-to/knowledgebase/review-services.md index de0a970..43615fb 100644 --- a/docs/how-to/knowledgebase/review-services.md +++ b/docs/how-to/knowledgebase/review-services.md @@ -47,6 +47,7 @@ For all service types, start by reading the service's reference card (`docs/refe 3. Review the upstream changelog for breaking changes 4. If the service uses a custom-built container, also check the base image for security updates and follow [[build-container-image]] to rebuild 5. If upgrading, update the manifest and follow [[deploy-k8s-service]] +6. If the container still uses a Dockerfile (no `container.py`), consider migrating to a native Dagger build — see the `containers/navidrome/container.py` pattern for reference ### Ansible Services (`type: ansible`) diff --git a/mise-tasks/service-review b/mise-tasks/service-review index 28b6dc4..92bac53 100755 --- a/mise-tasks/service-review +++ b/mise-tasks/service-review @@ -21,7 +21,6 @@ After reviewing, update the service entry in the YAML file: Usage: mise run service-review [-- --limit 15] [-- --type argocd] """ -import sys from datetime import date from pathlib import Path from typing import Annotated @@ -166,12 +165,25 @@ def main( ] svc_type = top_svc.get("type", "") + container_dir = Path(__file__).parent.parent / "containers" / top_svc["name"] + has_dockerfile_only = ( + (container_dir / "Dockerfile").exists() + and not (container_dir / "container.py").exists() + ) + if svc_type == "argocd": checklist_parts += [ "\n[bold]ArgoCD Deployment:[/bold]\n", "• Update image tag in argocd/manifests//kustomization.yaml\n", f"• Verify sync status: argocd app get {top_svc['name']}\n", ] + if has_dockerfile_only: + checklist_parts += [ + "\n[bold yellow]Dagger Migration:[/bold yellow]\n", + "• This container still uses a Dockerfile (no container.py)\n", + "• Consider migrating to a native Dagger build for better error visibility\n", + f"• See containers/{top_svc['name']}/Dockerfile\n", + ] elif svc_type == "ansible": checklist_parts += [ "\n[bold]Ansible Deployment:[/bold]\n",