Commit 8df2be69 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Merge branch 'dev' into 'master'

Corrige relaunch para servicios con nombre prefijo

See merge request redmic-project/docker/docker-deploy!33
parents f61ea672 77128ac6
Loading
Loading
Loading
Loading
+7 −16
Original line number Diff line number Diff line
#!/bin/sh

SERVICES_TO_CHECK="${SERVICES_TO_CHECK:-${STACK:-${SERVICE}}}"
GREP_BIN="${GREP_BIN:-grep}"

echo -e "\n${INFO_COLOR}Checking deployment of services [${DATA_COLOR} ${SERVICES_TO_CHECK} ${INFO_COLOR}] at ${DATA_COLOR}${remoteHost}${INFO_COLOR} ..${NULL_COLOR}"

@@ -10,31 +11,21 @@ do
	echo -e "  ${INFO_COLOR}retries ${DATA_COLOR}${STATUS_CHECK_RETRIES}${INFO_COLOR}, interval ${DATA_COLOR}${STATUS_CHECK_INTERVAL}${INFO_COLOR}s, hits ${DATA_COLOR}${STATUS_CHECK_MIN_HITS}${NULL_COLOR}\n"

	checkDeployCmd="\
		if docker stack ls > /dev/null 2> /dev/null ; \
		then \
			swarmMode=true ; \
		fi ; \
		if ls /usr/bin/grep > /dev/null 2> /dev/null ; \
		then \
			grepBin=/usr/bin/grep ; \
		else \
			grepBin=grep ; \
		fi ; \
		hits=0 && \
		for i in \$(seq 1 ${STATUS_CHECK_RETRIES}) ; \
		do \
			echo -e \"  try \${i}/${STATUS_CHECK_RETRIES} .. \\c\" && \
			if [ \"\${swarmMode}\" = true ] ; \
			if docker stack ls > /dev/null 2> /dev/null ; \
			then \
				stackServices=\$(docker service ls -f name=${serviceToCheck} --format '{{.Replicas}}') ; \
				serviceCount=\$(echo \"\${stackServices}\" | \${grepBin} -cE '.+') ; \
				runningServiceCount=\$(echo \"\${stackServices}\" | \${grepBin} -cE '([0-9]+)\/\1') ; \
				serviceCount=\$(echo \"\${stackServices}\" | ${GREP_BIN} -cE '.+') ; \
				runningServiceCount=\$(echo \"\${stackServices}\" | ${GREP_BIN} -cE '([0-9]+)\/\1') ; \
				for j in \$(seq 1 \${serviceCount}) ; \
				do \
					runningServiceName=\$(docker service ls -f name=${serviceToCheck} --format '{{.Name}}' | \
						head -\${j} | tail -1) ; \
					runningServiceDesiredReplicas=\$(docker service ls -f name=\${runningServiceName} \
						--format '{{.Replicas}}' | cut -d '/' -f 2) ; \
						--format '{{.Replicas}}' | head -1 | cut -d '/' -f 2) ; \
					completedTaskCount=0 ; \
					for k in \$(seq 1 \${runningServiceDesiredReplicas}) ; \
					do \
@@ -57,9 +48,9 @@ do
				runningContainersIds=\$(docker ps -f status=running --format '{{.ID}}' --no-trunc) ; \
				successfullyExitedContainersIds=\$(docker ps -a -f exited=0 --format '{{.ID}}' --no-trunc) ; \
				serviceContainerId=\$(docker inspect --format='{{.ID}}' ${serviceToCheck} 2> /dev/null) ; \
				runningService=\$(echo \"\${runningContainersIds}\" | \${grepBin} \"\${serviceContainerId:--}\") ; \
				runningService=\$(echo \"\${runningContainersIds}\" | ${GREP_BIN} \"\${serviceContainerId:--}\") ; \
				successfullyExitedService=\$(echo \"\${successfullyExitedContainersIds}\" | \
					\${grepBin} \"\${serviceContainerId:--}\") ; \
					${GREP_BIN} \"\${serviceContainerId:--}\") ; \
				statusCheckCmd=\"[ \${serviceContainerId:-_} = \${runningService:--} -o \
					\${serviceContainerId:-_} = \${successfullyExitedService:--} ]\" ; \
			fi ; \
+2 −2
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ fi
echo -e "\n${INFO_COLOR}Relaunching service ${DATA_COLOR}${SERVICE}${INFO_COLOR} at remote ${DATA_COLOR}${remoteHost}${INFO_COLOR} ..${NULL_COLOR}"

relaunchCmd="\
	imageNameAndTag=\$(docker service ls --filter 'name=${SERVICE}' --format '{{.Image}}') && \
	imageNameAndTag=\$(docker service ls -f 'name=${SERVICE}' --format '{{.Image}}' | head -1) && \
	imageName=\$(echo \${imageNameAndTag} | cut -f 1 -d ':' | cut -f 1 -d '@') && \
	if [ -z \"\${imageName}\" ] ; \
	then \
@@ -23,7 +23,7 @@ relaunchCmd="\
	docker login -u ${REGISTRY_USER} -p ${CI_JOB_TOKEN} ${CI_REGISTRY} && \
	docker pull \${imageNameAndTag} && \
	imageDigest=\$(docker images --digests --format '{{.Digest}}' \${imageName} | head -1) && \
	docker service update --force --image \${imageName}@\${imageDigest} ${SERVICE}"
	docker service update -q --force --image \${imageName}@\${imageDigest} ${SERVICE}"

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