Fix GitLab CI YAML parsing for remote deploy block.
Replace the inline SSH command with a YAML-safe block scalar and heredoc so the pipeline parser accepts the script while keeping the same port-conflict handling logic.
This commit is contained in:
+28
-20
@@ -23,27 +23,35 @@ deploy_to_sinbad2:
|
|||||||
- scp -r ./* $REMOTE_USER@$SSH_HOST:~/deploy_$APP_NAME/
|
- scp -r ./* $REMOTE_USER@$SSH_HOST:~/deploy_$APP_NAME/
|
||||||
|
|
||||||
- echo "Levantando contenedores con Docker Compose..."
|
- echo "Levantando contenedores con Docker Compose..."
|
||||||
- ssh $REMOTE_USER@$SSH_HOST "
|
- |
|
||||||
cd ~/deploy_$APP_NAME &&
|
ssh "$REMOTE_USER@$SSH_HOST" <<EOF
|
||||||
echo 'Comprobando puertos en uso...' &&
|
set -e
|
||||||
docker ps --format '{{.ID}} {{.Ports}}' | grep -E '0.0.0.0:$FRONTEND_PORT->|0.0.0.0:$BACKEND_PORT->' || true &&
|
cd ~/deploy_$APP_NAME
|
||||||
CONFLICT_FRONT=\$(docker ps -q --filter publish=$FRONTEND_PORT) &&
|
echo "Comprobando puertos en uso..."
|
||||||
if [ ! -z \"\$CONFLICT_FRONT\" ]; then
|
docker ps --format '{{.ID}} {{.Ports}}' | grep -E "0.0.0.0:$FRONTEND_PORT->|0.0.0.0:$BACKEND_PORT->" || true
|
||||||
echo \"Liberando puerto frontend $FRONTEND_PORT (contenedores: \$CONFLICT_FRONT)\" &&
|
|
||||||
docker stop \$CONFLICT_FRONT &&
|
CONFLICT_FRONT=\$(docker ps -q --filter publish=$FRONTEND_PORT)
|
||||||
docker rm \$CONFLICT_FRONT;
|
if [ -n "\$CONFLICT_FRONT" ]; then
|
||||||
fi &&
|
echo "Liberando puerto frontend $FRONTEND_PORT (contenedores: \$CONFLICT_FRONT)"
|
||||||
CONFLICT_BACK=\$(docker ps -q --filter publish=$BACKEND_PORT) &&
|
docker stop \$CONFLICT_FRONT
|
||||||
if [ ! -z \"\$CONFLICT_BACK\" ]; then
|
docker rm \$CONFLICT_FRONT
|
||||||
echo \"Liberando puerto backend $BACKEND_PORT (contenedores: \$CONFLICT_BACK)\" &&
|
fi
|
||||||
docker stop \$CONFLICT_BACK &&
|
|
||||||
docker rm \$CONFLICT_BACK;
|
CONFLICT_BACK=\$(docker ps -q --filter publish=$BACKEND_PORT)
|
||||||
fi &&
|
if [ -n "\$CONFLICT_BACK" ]; then
|
||||||
export BACKEND_PORT=$BACKEND_PORT FRONTEND_PORT=$FRONTEND_PORT ALLOWED_ORIGINS=\"http://sinbad2.ujaen.es,http://sinbad2.ujaen.es:$FRONTEND_PORT\" &&
|
echo "Liberando puerto backend $BACKEND_PORT (contenedores: \$CONFLICT_BACK)"
|
||||||
docker compose down --remove-orphans &&
|
docker stop \$CONFLICT_BACK
|
||||||
docker compose build --no-cache frontend backend &&
|
docker rm \$CONFLICT_BACK
|
||||||
|
fi
|
||||||
|
|
||||||
|
export BACKEND_PORT=$BACKEND_PORT
|
||||||
|
export FRONTEND_PORT=$FRONTEND_PORT
|
||||||
|
export ALLOWED_ORIGINS="http://sinbad2.ujaen.es,http://sinbad2.ujaen.es:$FRONTEND_PORT"
|
||||||
|
|
||||||
|
docker compose down --remove-orphans
|
||||||
|
docker compose build --no-cache frontend backend
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
"
|
EOF
|
||||||
|
|
||||||
- echo "Despliegue completado."
|
- echo "Despliegue completado."
|
||||||
- echo "Backend -> http://sinbad2.ujaen.es:$BACKEND_PORT"
|
- echo "Backend -> http://sinbad2.ujaen.es:$BACKEND_PORT"
|
||||||
|
|||||||
Reference in New Issue
Block a user