¿Cómo puedo volver a escalar un docker-compose que ya se está ejecutan

¿Cómo puedo volver a escalar un docker-compose que ya se está ejecutando sin reiniciar los contenedores?

Estoy ejecutando una pila docker-compose con dos servicios y me gustaría escalar/reescalar uno de ellos varias veces.

Este es mi archivo docker-compose.yaml:

version: '3.8'
services:
  manager:
    hostname: manager
    build:
      context: .
      dockerfile: manager.ubuntu.Dockerfile  
    restart: always
    ports:
      - '7777:80'
    volumes:
      - './src:/src'
      - './app:/var/www/html'
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/bin/docker:/usr/bin/docker    
    tty: true
    networks:
      - my-net      
  worker:
    build:
      context: .
      dockerfile: worker.dind.Dockerfile  
    restart: always
    privileged: true    
    tty: true
    networks:
      - my-net            
networks:
  my-net:

Estoy escalando así:

docker-compose -p stack up --scale worker=3 --build

Este es el primer resultado:

...   NAMES
...   stack_manager_1
...   stack_worker_1
...   stack_worker_2
...   stack_worker_3

Ahora que tengo 3 trabajadores y 1 administrador en ejecución, a veces me gustaría volver a escalar para agregar, por ejemplo, 2 trabajadores más sin afectar el estado actual de otros contenedores.

El resultado esperado después del cambio de escala

...   NAMES
...   stack_manager_1
...   stack_worker_1
...   stack_worker_2
...   stack_worker_3
...   stack_worker_4
...   stack_worker_5

¿Hay alguna forma posible de hacer eso donde I don't want any container to be stopped or restarted pero simplemente agregar contenedores adicionales a la pila?

Mostrar la mejor respuesta

¿Intentó simplemente ejecutar el mismo comando con una escala diferente, sin el indicador build?

Lo he intentado, pero parece que todos los contenedores antiguos se están reiniciando.

Avatar ust
Respuesta aceptada

Puedes hacerlo con "--no-recreate" como:

docker-compose -up -d --scale worker=3 --no-recreate

Mira:

documentos de docker