Browse Source

Make container service color deterministic, remove red from chosen colors

Signed-off-by: Anthony Lai <[email protected]>
Anthony Lai 6 years ago
parent
commit
802fa20228
2 changed files with 6 additions and 3 deletions
  1. 2 2
      compose/cli/colors.py
  2. 4 1
      compose/cli/log_printer.py

+ 2 - 2
compose/cli/colors.py

@@ -41,9 +41,9 @@ for (name, code) in get_pairs():
 
 
 def rainbow():
-    cs = ['cyan', 'yellow', 'green', 'magenta', 'red', 'blue',
+    cs = ['cyan', 'yellow', 'green', 'magenta', 'blue',
           'intense_cyan', 'intense_yellow', 'intense_green',
-          'intense_magenta', 'intense_red', 'intense_blue']
+          'intense_magenta', 'intense_blue']
 
     for c in cs:
         yield globals()[c]

+ 4 - 1
compose/cli/log_printer.py

@@ -134,7 +134,10 @@ def build_thread(container, presenter, queue, log_args):
 def build_thread_map(initial_containers, presenters, thread_args):
     return {
         container.id: build_thread(container, next(presenters), *thread_args)
-        for container in initial_containers
+        # Container order is unspecified, so they are sorted by name in order to make
+        # container:presenter (log color) assignment deterministic when given a list of containers
+        # with the same names.
+        for container in sorted(initial_containers, key=lambda c: c.name)
     }