From 176fe807c1824e85fb1e15ec011dde949127a002 Mon Sep 17 00:00:00 2001 From: Cauan Neves Date: Sat, 23 May 2026 19:09:17 -0300 Subject: [PATCH] Adiciona docker-compose.prod.yml e deploy.sh - Compose: serve site via container nginx em 127.0.0.1:8095 - deploy.sh: build + push imagem + bump tag no compose + git push (triggera webhook do Portainer) --- deploy.sh | 67 +++++++++++++++++++++++++++++++++++++++++ docker-compose.prod.yml | 6 ++++ 2 files changed, 73 insertions(+) create mode 100755 deploy.sh create mode 100644 docker-compose.prod.yml diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..c0f2419 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# ============================================ +# Rivus Lab Landing Page — Deploy automatizado +# ============================================ +# Build, push imagem, atualiza tag no compose, commit, push. +# Webhook do Gitea dispara redeploy no Portainer. +# ============================================ + +set -e + +REGISTRY="registry.rivuslab.com" +NAMESPACE="cauanneves" +IMAGE="rivuslab-site" + +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' + +echo -e "${BLUE}==========================================${NC}" +echo -e "${BLUE} Rivus Lab Site — Deploy${NC}" +echo -e "${BLUE}==========================================${NC}" + +if [ -n "$(git status --porcelain)" ]; then + echo -e "${RED}❌ Working directory tem mudanças não comitadas:${NC}" + git status --short + echo "" + echo "Commit ou stash antes de deployar." + exit 1 +fi + +GIT_SHA=$(git rev-parse --short HEAD) +TAG="${GIT_SHA}" +echo -e "${YELLOW}Tag de deploy: ${TAG}${NC}" +echo "" + +echo -e "${GREEN}▶ Building (${TAG})${NC}" +docker build \ + -t "${REGISTRY}/${NAMESPACE}/${IMAGE}:${TAG}" \ + -t "${REGISTRY}/${NAMESPACE}/${IMAGE}:latest" \ + . + +echo -e "${GREEN}▶ Pushing${NC}" +docker push "${REGISTRY}/${NAMESPACE}/${IMAGE}:${TAG}" +docker push "${REGISTRY}/${NAMESPACE}/${IMAGE}:latest" +echo "" + +echo -e "${GREEN}▶ Atualizando docker-compose.prod.yml${NC}" +sed -i "s|${REGISTRY}/${NAMESPACE}/${IMAGE}:[^\"[:space:]]*|${REGISTRY}/${NAMESPACE}/${IMAGE}:${TAG}|g" docker-compose.prod.yml + +if [ -z "$(git status --porcelain docker-compose.prod.yml)" ]; then + echo -e "${YELLOW}⚠ docker-compose.prod.yml não mudou. Nenhum push.${NC}" + exit 0 +fi + +git diff docker-compose.prod.yml +echo "" + +echo -e "${GREEN}▶ Commit + push${NC}" +git add docker-compose.prod.yml +git commit -m "Deploy ${TAG}" +git push + +echo "" +echo -e "${GREEN}✅ Deploy disparado!${NC}" +echo "Acompanhe em: https://portainer.rivuslab.com/#!/2/docker/stacks/rivuslab-site" diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..b317b3c --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,6 @@ +services: + site: + image: registry.rivuslab.com/cauanneves/rivuslab-site:latest + restart: unless-stopped + ports: + - "127.0.0.1:8095:80"