es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Actualización de solo un microservicio en una aplicación en la nube de Spring Containerizada en Docker.

He creado un ecosistema de microservicios de Spring Cloud que está compuesto por un servidor Spring Cloud Eureka, un proxy Spring Cloud Gateway y varios microservicios. También he utilizado Docker para contenerizar cada uno de estos servicios y inicio las imágenes utilizando un archivo docker-compose.

version: '3'
services:
  discovery-server:
    image: serviceregistry-api-docker:latest
    ports:
      - 8761:8761
    networks:
      - transaction-network
  api-gateway:
    image: apigateway-api-docker:latest
    environment:
     - JAVA_OPTS=
      -DEUREKA_SERVER=http://discovery-server:8761/eureka/
    depends_on:
      - discovery-server
    ports:
      - 9091:9091
    networks:
      - transaction-network
  utility-service:
    image:  utility-api-docker:latest
    environment:
      - JAVA_OPTS=
       -DEUREKA_SERVER=http://discovery-server:8761/eureka/
    restart: on-failure
    depends_on:
      - discovery-server
      - api-gateway
    ports:
      - 8090:8090
    networks:
      - transaction-network
  banktransfer-service:
    image:  banktransfer-api-docker:latest
    environment:
      - JAVA_OPTS=
        -DEUREKA_SERVER=http://discovery-server:8761/eureka/
    restart: on-failure
    depends_on:
      - discovery-server
      - api-gateway
    ports:
      - 8091:8091
    networks:
      - transaction-network
  ussd-service:
    image:  ussd-api-docker:latest
    environment:
      - JAVA_OPTS=
        -DEUREKA_SERVER=http://discovery-server:8761/eureka/
    restart: on-failure
    depends_on:
      - discovery-server
      - api-gateway
    ports:
      - 8096:8096
    networks:
      - transaction-network
networks:
    transaction-network:
        driver: bridge

Cuando actualizo solo 1 microservicio y creo una nueva imagen de Docker con mi actualización, ¿cómo la reemplazo por la versión en ejecución actual en el ecosistema?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para reemplazar la versión en ejecución actual de un solo microservicio con la imagen de Docker actualizada, puedes seguir estos pasos:

    1. Detén el contenedor en ejecución del microservicio usando el comando: docker-compose stop <nombre-servicio>
    2. Elimina el contenedor detenido del microservicio usando el comando: docker-compose rm <nombre-servicio>

    3. Descarga la última imagen del microservicio desde el registro usando el comando: docker-compose pull <nombre-servicio>

    4. Inicia el nuevo contenedor de Docker con la imagen actualizada usando el comando: docker-compose up -d <nombre-servicio>

    Esto iniciará una nueva instancia del contenedor del microservicio con la imagen actualizada mientras elimina el antiguo contenedor en ejecución del microservicio. La bandera -d se utiliza para ejecutar el contenedor en segundo plano.

Comments are closed.