Commit 3136a18c authored by Pedro Eduardo Trujillo's avatar Pedro Eduardo Trujillo
Browse files

Desglosa comprobación de entorno y modo de deploy

parent 0871a409
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -8,11 +8,15 @@ You can use it to deploy your own services, supporting **Docker Compose** (both

* **deploy**:

  Perform a service deployment at a Docker environment. Contains 6 stages:
  Perform a service deployment at a Docker environment. Contains several stages:

  1. **check-env**:

     Check dependencies, version requirements and get supported mode (`Swarm` or `Compose`) at deployment target host environment.
     Check dependencies and version requirements at deployment target host environment.

  1. **check-mode**:

     Check supported mode (`Swarm` or `Compose`) at deployment target host environment.

  1. **prepare-env**:

+0 −37
Original line number Diff line number Diff line
@@ -29,40 +29,3 @@ else
	runRemoteCmd "${checkSwarmManagerAvailabilityCmd}"
	deployingToSwarm=${?}
fi

if [ ${deployingToSwarm} -eq 0 ]
then
	deploymentTypeLabel="Swarm"

	# Prepara los argumentos necesarios para indicar los ficheros compose a usar, para swarm o para compose.
	swarmComposeFileSplitted=$(echo ${COMPOSE_FILE} | sed 's/:/ -c /g')
else
	deploymentTypeLabel="Compose"

	# Prepara los argumentos necesarios para indicar los ficheros compose a usar, para compose.
	standardComposeFileSplitted=$(echo ${COMPOSE_FILE} | sed 's/:/ -f /g')

	# Se comprueba si está disponible el plugin compose de docker o el antiguo binario docker-compose.
	if [ ${docker23CompatibleTarget} -eq 0 ]
	then
		composeBaseCmd="docker compose"
	else
		composeBaseCmd="docker-compose"

		checkDockerComposeBinaryCmd="command -v docker-compose > /dev/null"
		if ! runRemoteCmd "${checkDockerComposeBinaryCmd}"
		then
			echo -e "\n${FAIL_COLOR}Legacy docker-compose binary is not available at deployment target host environment!${NULL_COLOR}"
			eval "${closeSshCmd}"
			exit 1
		fi
	fi

	# Se obtiene la versión de Docker Compose disponible en el entorno donde se va a desplegar.
	getComposeVersionCmd="${composeBaseCmd} version --short"
	composeVersion=$(runRemoteCmd "${getComposeVersionCmd}")

	echo -e "  ${INFO_COLOR}host Docker Compose version [ ${DATA_COLOR}${composeVersion}${INFO_COLOR} ]${NULL_COLOR}"
fi

echo -e "  ${INFO_COLOR}deployment type [ ${DATA_COLOR}${deploymentTypeLabel}${INFO_COLOR} ]${NULL_COLOR}"

script/_check-mode.sh

0 → 100755
+38 −0
Original line number Diff line number Diff line
#!/bin/sh

if [ ${deployingToSwarm} -eq 0 ]
then
	deploymentTypeLabel="Swarm"

	# Prepara los argumentos necesarios para indicar los ficheros compose a usar, para swarm o para compose.
	swarmComposeFileSplitted=$(echo ${COMPOSE_FILE} | sed 's/:/ -c /g')
else
	deploymentTypeLabel="Compose"

	# Prepara los argumentos necesarios para indicar los ficheros compose a usar, para compose.
	standardComposeFileSplitted=$(echo ${COMPOSE_FILE} | sed 's/:/ -f /g')

	# Se comprueba si está disponible el plugin compose de docker o el antiguo binario docker-compose.
	if [ ${docker23CompatibleTarget} -eq 0 ]
	then
		composeBaseCmd="docker compose"
	else
		composeBaseCmd="docker-compose"

		checkDockerComposeBinaryCmd="command -v docker-compose > /dev/null"
		if ! runRemoteCmd "${checkDockerComposeBinaryCmd}"
		then
			echo -e "\n${FAIL_COLOR}Legacy docker-compose binary is not available at deployment target host environment!${NULL_COLOR}"
			eval "${closeSshCmd}"
			exit 1
		fi
	fi

	# Se obtiene la versión de Docker Compose disponible en el entorno donde se va a desplegar.
	getComposeVersionCmd="${composeBaseCmd} version --short"
	composeVersion=$(runRemoteCmd "${getComposeVersionCmd}")

	echo -e "  ${INFO_COLOR}host Docker Compose version [ ${DATA_COLOR}${composeVersion}${INFO_COLOR} ]${NULL_COLOR}"
fi

echo -e "  ${INFO_COLOR}deployment type [ ${DATA_COLOR}${deploymentTypeLabel}${INFO_COLOR} ]${NULL_COLOR}"
+1 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ fi
echo -e "${INFO_COLOR}Performing a deployment at host ${DATA_COLOR}${remoteHost}${INFO_COLOR} ..${NULL_COLOR}"

. _check-env.sh
. _check-mode.sh
. _prepare-env.sh
. _check-config.sh
. _prepare-deploy.sh