Commit 3eb25e7d authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Simplifica relanzamiento por defecto

El proceso de actualización de la imagen de un servicio cuando este se
relanza se ha simplificado, permitiendo activar el comportamiento
anterior mediante configuración. Normalmente, no es necesario trabajar
con los digest de la imagen Docker para relanzar un servicio.
parent 02d999e1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ For environment variables, you may define these variables (**bold** are mandator
* *STATUS_CHECK_INTERVAL*: Default `20`.
* *STATUS_CHECK_DELAY*: Default `120`.
* *STATUS_CHECK_MIN_HITS*: Default `3`.
* *USE_IMAGE_DIGEST*: Update service image using digest data when relaunching. Default `0`.
* *GREP_BIN*: Default `grep`.

Action may be one of `deploy.sh`, `create-nets.sh` or `relaunch.sh`, and parameters with variable/value depends on your service needs.
+1 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ STATUS_CHECK_RETRIES="${STATUS_CHECK_RETRIES:-10}"
STATUS_CHECK_INTERVAL="${STATUS_CHECK_INTERVAL:-20}"
STATUS_CHECK_DELAY="${STATUS_CHECK_DELAY:-120}"
STATUS_CHECK_MIN_HITS="${STATUS_CHECK_MIN_HITS:-3}"
USE_IMAGE_DIGEST="${USE_IMAGE_DIGEST:-0}"

GREP_BIN="${GREP_BIN:-grep}"
SSH_CONTROL_PERSIST="${SSH_CONTROL_PERSIST:-10}"
+20 −15
Original line number Diff line number Diff line
@@ -12,6 +12,8 @@ fi

echo -e "\n${INFO_COLOR}Relaunching service ${DATA_COLOR}${SERVICE}${INFO_COLOR} at remote ${DATA_COLOR}${remoteHost}${INFO_COLOR} ..${NULL_COLOR}"

if [ "${USE_IMAGE_DIGEST}" -eq 1 ]
then
	relaunchCmd="\
		imageNameAndTag=\$(docker service ls -f 'name=${SERVICE}' --format '{{.Image}}' | head -1) && \
		imageName=\$(echo \${imageNameAndTag} | cut -f 1 -d ':' | cut -f 1 -d '@') && \
@@ -27,6 +29,9 @@ relaunchCmd="\
		docker pull \${imageNameAndTag} && \
		imageDigest=\$(docker images --digests --format '{{.Digest}}' \${imageName} | head -1) && \
		docker service update -q --force --image \${imageName}@\${imageDigest} ${SERVICE}"
else
	relaunchCmd="docker service update -q --force ${SERVICE}"
fi

if ssh ${SSH_PARAMS} "${SSH_REMOTE}" "${relaunchCmd}"
then