Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.6K
Visualizações
¿Cómo reconstruir y actualizar un contenedor sin tiempo de inactividad con docker-compose?

Disfruto mucho usando docker-compose.

P.ej. en mi servidor, cuando quiero actualizar mi aplicación con cambios menores, solo necesito git pull origin master && docker-compose restart , funciona perfectamente.

Pero a veces, necesito reconstruir (por ejemplo, agregué una dependencia de npm, necesito ejecutar npm install nuevamente).

En este caso, hago docker-compose build --no-cache && docker-compose restart .

Esperaría que esto:

  • crear una nueva instancia de mi contenedor
  • detener el contenedor existente (después de que el más nuevo haya terminado de construirse)
  • empezar el nuevo
  • opcionalmente, elimine el anterior, pero esto podría hacerse manualmente

Pero en la práctica parece reiniciar el anterior de nuevo.

¿Es el comportamiento esperado?

¿Cómo puedo manejar una reconstrucción y comenzar una nueva después de que se construya?

¿Quizás me perdí un comando específico? ¿O tendría sentido tenerlo?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

desde el reinicio manual de docker-compose

Si realiza cambios en su configuración de docker-compose.yml, estos cambios no se reflejarán después de ejecutar este comando.

deberías poder hacer

 $docker-compose up -d --no-deps --build <service_name>

--no-deps no iniciará los servicios vinculados.

over 4 years ago · Santiago Trujillo Relatório

0

El problema es que restart reiniciará sus contenedores actuales, que no es lo que desea.

Como ejemplo, acabo de hacer esto.

  • cambia el archivo docker por una de las imágenes
  • llama a docker-compose build para construir las imágenes
  • llamar docker-compose down 1 y docker-compose up
    • docker-compose restart NO funcionará aquí
    • usar docker-compose start en su lugar tampoco funciona

Para ser honesto, no estoy completamente seguro de que primero deba hacer un down , pero eso debería ser fácil de verificar. 1 La conclusión es que debe llamar up . Verá que se reinician los contenedores de imágenes sin cambios, pero para la imagen modificada verá recreating .

La ventaja de esto sobre simplemente llamar up --build es que puede ver el proceso de construcción primero antes de reiniciar.

1: de los comentarios; down no es necesario, simplemente puede llamar up --build . Down tiene algunos aspectos negativos, incluida la posibilidad de que sea destructivo para sus datos (de volumen).

over 4 years ago · Santiago Trujillo Relatório

0

Use el indicador --build para el comando up , junto con el indicador -d para ejecutar sus contenedores en segundo plano:

 docker-compose up -d --build

Esto reconstruirá todas las imágenes definidas en su archivo de redacción, luego reiniciará cualquier contenedor cuyas imágenes hayan cambiado.

-d asume que no desea mantener todo funcionando en primer plano de su shell. Esto hace que actúe más como restart , pero no es obligatorio.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda