Commit a7431375 authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Refactoriza y respeta resolve image tras deploy

Revisa el código de do-deploy para simplificar su estructura y eliminar
acciones innecesarias.

Corrige el comando 'service update' que se lanza tras desplegar con
'stack deploy' usando autenticación, para respetar el ajuste de omisión
de comprobación de imagen en el registry.
parent 5e15898f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ then
	grep -v '^[#| ]' "${COMPOSE_ENV_FILE_NAME}" | sed -r "s/(\w+)=(.*)/export \1='\2'/g" > "${tempEnvFile}"

	env -i /bin/sh -c "\
		. $(pwd)/${tempEnvFile} && \
		. ${tempEnvFile} && \
		/usr/local/bin/docker stack config -c ${swarmComposeFileSplitted} > /dev/null"
else
	echo -e "docker compose config${INFO_COLOR} ]${NULL_COLOR}\n"
+35 −19
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ then
	echo -e "\n${INFO_COLOR}Login to registry ${DATA_COLOR}${REGISTRY_URL:-<default>}${INFO_COLOR} ..${NULL_COLOR}\n"

	loginCmd="\
		${GREP_BIN} \"^${ddRegistryPassVarName}=\" \"${COMPOSE_ENV_FILE_NAME}\" | cut -d= -f2- | tr -d \"'\" | \
		${GREP_BIN} \"^${ddRegistryPassVarName}=\" \"${COMPOSE_ENV_FILE_NAME}\" | cut -d '=' -f 2- | tr -d \"'\" | \
		docker login -u \"${REGISTRY_USER}\" --password-stdin ${REGISTRY_URL}"

	if runRemoteCmd "${moveToDeployDirCmd}${loginCmd}"
@@ -20,8 +20,6 @@ then
	deployAuthParam="--with-registry-auth"
else
	echo -e "\n${INFO_COLOR}Omitting login to registry${NULL_COLOR}"

	deployAuthParam=""
fi

if [ ${deployingToSwarm} -eq 0 ]
@@ -30,25 +28,43 @@ then
		${GREP_BIN} -v '^[#| ]' \"${COMPOSE_ENV_FILE_NAME}\" | \
			sed -r \"s/(\w+)=(.*)/export \1='\2'/g\" > .env-deploy && \
		env -i /bin/sh -c \"\
			. \$(pwd)/.env-deploy && \
			rm \$(pwd)/.env-deploy && \
			docker stack deploy ${deployAuthParam} --resolve-image ${SWARM_RESOLVE_IMAGE} \
				-c ${swarmComposeFileSplitted} ${STACK}\" && \
		if [ ! -z \"${deployAuthParam}\" ] ; \
		then \
			servicesToAuth=\"${SERVICES_TO_AUTH:-${servicesInComposeFiles}}\" && \
			if [ ! -z \"\${servicesToAuth}\" ] ; \
			then \
				for serviceToAuth in \${servicesToAuth} ; \
			. .env-deploy && \
			rm .env-deploy && \
			docker stack deploy \
				${deployAuthParam} \
				--resolve-image ${SWARM_RESOLVE_IMAGE} \
				-c ${swarmComposeFileSplitted} \
				${STACK}\""

	if [ ! -z "${deployAuthParam}" ]
	then
		servicesToAuth="${SERVICES_TO_AUTH:-${servicesInComposeFiles}}"

		if [ ! -z "${servicesToAuth}" ]
		then
			if [ "${SWARM_RESOLVE_IMAGE}" = "never" ]
			then
				updateResolveParam="--no-resolve-image"
			fi

			updateForAuthCmd="\
				for serviceToAuth in ${servicesToAuth} ; \
				do \
					docker service update -d \${deployAuthParam} \${serviceToAuth} ; \
				done ; \
			fi ; \
		fi"
					docker service update -d \
						${deployAuthParam} \
						${updateResolveParam} \
						\${serviceToAuth} ; \
				done"
		fi
	fi

	deployCmd="${moveToDeployDirCmd}${deploySwarmCmd}"
	deployCmd="${moveToDeployDirCmd}${deploySwarmCmd}${updateForAuthCmd:+ && }${updateForAuthCmd}"
else
	composeCmd="${composeBaseCmd} -f ${standardComposeFileSplitted} --env-file \"${COMPOSE_ENV_FILE_NAME}\" -p ${STACK}"
	composeCmd="\
		${composeBaseCmd} \
			-f ${standardComposeFileSplitted} \
			--env-file \"${COMPOSE_ENV_FILE_NAME}\" \
			-p ${STACK}"

	deployComposeCmd="\
		${composeCmd} stop ${SERVICES_TO_DEPLOY} && \