@@ -25,6 +25,38 @@ def _deep_copy(obj: Any) -> Any:
2525 return obj
2626
2727
28+ def _rewrite_depends_on (
29+ service_config : Dict [str , Any ],
30+ dev_service_name : str ,
31+ scale : int ,
32+ ) -> None :
33+ """Rewrite `depends_on: <dev>` references to scaled instances (dev-1, ..., dev-N).
34+
35+ Supports both list form (`depends_on: [dev, mysql]`) and map form
36+ (`depends_on: {dev: {condition: service_healthy}}`). For scale > 1 a
37+ single `dev` reference is expanded to every dev-i instance so that the
38+ dependent service waits for all of them.
39+ """
40+ deps = service_config .get ('depends_on' )
41+ if not deps :
42+ return
43+
44+ instance_names = [f"{ dev_service_name } -{ i } " for i in range (1 , scale + 1 )]
45+
46+ if isinstance (deps , list ):
47+ new_deps = []
48+ for d in deps :
49+ if d == dev_service_name :
50+ new_deps .extend (instance_names )
51+ else :
52+ new_deps .append (d )
53+ service_config ['depends_on' ] = new_deps
54+ elif isinstance (deps , dict ) and dev_service_name in deps :
55+ condition = deps .pop (dev_service_name )
56+ for name in instance_names :
57+ deps [name ] = _deep_copy (condition )
58+
59+
2860def _replace_volumes_for_instance (
2961 volumes : list , ai_volume : str , work_volume : str ,
3062) -> list :
@@ -164,10 +196,14 @@ def generate_scaled_compose(
164196 # Build scaled compose
165197 scaled_config = {'services' : {}}
166198
167- # Copy non-dev services (mysql, valkey, etc.) as-is
199+ # Copy non-dev services (mysql, valkey, etc.) — rewriting any
200+ # `depends_on: <dev>` reference to the scaled instances (dev-1..N) so
201+ # service_healthy chains keep working after dev is renamed.
168202 for service_name , service_config in services .items ():
169203 if service_name != dev_service_name :
170- scaled_config ['services' ][service_name ] = _deep_copy (service_config )
204+ copied = _deep_copy (service_config )
205+ _rewrite_depends_on (copied , dev_service_name , scale )
206+ scaled_config ['services' ][service_name ] = copied
171207
172208 # Generate a service for each instance
173209 for i in range (1 , scale + 1 ):
0 commit comments