Entregas

Cómo usar la versión de una imagen creada en desarrollo para crear una imagen entregable

Una vez que tenemos creada una imagen y que está disponible en Harbor, debemos empezar a trabajar con el repositorio de deployment. Actualmente tiene 3 ramas principales:

  • master

  • macro

  • bancor

Ramas del repositorio de deployment en GitKraken.

Clonamos localmente dicho repositorio y hacemos un checkout a la rama deseada. Generalmente será la rama master. Allí se realizarán los cambios necesarios y luego se deberan replicar en las ramas de los clientes mediante merges, a menos que solo se desee sacar una versión entregable para un cliente específico.

Mas allá de las modificaciones a hacer, hay dos cambios triviales que siempre son necesarios. El primero es cambiar la versión de la imagen del engine en el archivo docker-compose.yml por la nueva, recién creada.

docker-compose.yml
qfix:
    image: localhost:5000/mercap-fix-engine:v2.2.0

La segunda modificación también involucra actualizar el tag de la imagen del engine, pero esta vez en el archivo .deploy/docker-images.csv .

.deploy/docker-images.csv
srvdocker.mercap.net/mercap/rabbitmq:v1.2.1;localhost:5000/rabbitmq:v1.2.1
srvdocker.mercap.net/mercap/postgres:v9.6.23;localhost:5000/postgres:v9.6.23
srvdocker.mercap.net/fix/mercap-fix-engine:v2.2.0;localhost:5000/mercap-fix-engine:v2.2.0

Una vez realizados todos los cambios, hacemos commit y push sobre la rama remota correspondiente. En el caso de haber trabajado sobre la rama master, deberemos hacer los merge necesarios en las ramas de los clientes. De surgir conflictos en el merge, se deberán resolver de manera local.

Finalmente, desde una terminal podremos hacer checkout de la rama cliente que necesitamos entregar y dirigirnos hasta .deploy/ para crear los archivos de la entrega.

git checkout bancor
cd .deploy/
./package-images.sh

Este proceso puede tardar unos minutos. Al finalizar, obtendremos los siguientes archivos:

  • docker-images.tar.gz

  • mercap-fix-engine.bundle

Además del archivo package-images.sh también hay otros scripts útiles en el directorio .deploy/. En la siguiente sección podremos ver cual es el propósito de cada uno de ellos.

Scripts

Los archivos obtenidos están listos para ser instalados, testeados y entregados a los respectivos clientes. De ser necesario algún script de migración de base de datos, no olvidar adjuntarlo en la misma entrega. El siguiente enlace describe en profundidad el proceso de instalación del FIX Engine.

Instalación

Nota: de ser necesario copiar los archivos de la instalación en un servidor en red (por ejemplo ensrvmptest03.mercap.net) se pueden copiar los mismos fácilmente mediante el comando scp ARCHIVO USUARIO@SERVIDOR:/DIRECTORIO/DE/DESTINO

scp mercap-fix-engine.bundle [email protected]:/home/mercap
scp docker-images.tar.gz [email protected]:/home/mercap
scp db-setup.py [email protected]:/home/mercap

Last updated

Was this helpful?