diff --git a/podman_compose.py b/podman_compose.py
index c72c30f..0cb0acd 100755
--- a/podman_compose.py
+++ b/podman_compose.py
@@ -1089,8 +1089,17 @@ def build_one(compose, args, cnt):
 
 @cmd_run(podman_compose, 'build', 'build stack images')
 def compose_build(compose, args):
-    for cnt in compose.containers:
-        build_one(compose, args, cnt)
+    if args.services:
+        container_names_by_service = compose.container_names_by_service
+        for service in args.services:
+            try:
+                cnt = compose.container_by_name[container_names_by_service[service][0]]
+            except:
+                raise ValueError("unknown service: " + service)
+            build_one(compose, args, cnt)
+    else:
+        for cnt in compose.containers:
+            build_one(compose, args, cnt)
 
 def create_pods(compose, args):
     for pod in compose.pods:
@@ -1383,7 +1392,8 @@ def compose_build_parse(parser):
         help="attempt to pull a newer version of the image, Raise an error even if the image is present locally.", action='store_true')
     parser.add_argument("--build-arg", metavar="key=val", action="append", default=[],
         help="Set build-time variables for services.")
-
+    parser.add_argument('services', metavar='services', nargs='*',default=None,
+                        help='affected services')
 
 def main():
     podman_compose.run()