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?
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:
docker-compose stop <nombre-servicio>
Elimina el contenedor detenido del microservicio usando el comando:
docker-compose rm <nombre-servicio>
Descarga la última imagen del microservicio desde el registro usando el comando:
docker-compose pull <nombre-servicio>
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.