fix(ci): corrige backup/restore do .env usando Docker
All checks were successful
All checks were successful
O problema anterior: apos limpar o conteudo do diretorio, o proprio diretorio ainda tinha permissoes de root, fazendo o cp do .env falhar. Nova abordagem: - Salvar .env usando Docker (monta origem e /tmp) - Remover o diretorio COMPLETAMENTE usando Docker (monta diretorio pai) - Recriar o diretorio com mkdir -p (permissoes do usuario runner) - Restaurar o .env (agora o diretorio tem permissoes corretas) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
6943a88e66
commit
9e385b664d
1 changed files with 16 additions and 10 deletions
|
|
@ -193,6 +193,7 @@ jobs:
|
|||
run: |
|
||||
set -e
|
||||
DEST="$HOME/apps/sistema"
|
||||
PARENT_DIR="$HOME/apps"
|
||||
|
||||
# SOLUCAO DEFINITIVA: Limpar completamente o destino usando Docker (root)
|
||||
# Isso evita erros de permissao de arquivos criados por Docker em deploys anteriores
|
||||
|
|
@ -200,20 +201,25 @@ jobs:
|
|||
echo "Limpando diretorio destino: $DEST"
|
||||
# Preservar apenas o .env (configuracoes de producao)
|
||||
if [ -f "$DEST/.env" ]; then
|
||||
cp "$DEST/.env" /tmp/.env.backup
|
||||
docker run --rm -v "$DEST":/src -v /tmp:/backup alpine:3 \
|
||||
cp /src/.env /backup/.env.backup
|
||||
echo ".env salvo em /tmp/.env.backup"
|
||||
fi
|
||||
# Remover tudo usando Docker Alpine como root
|
||||
docker run --rm -v "$DEST":/target alpine:3 \
|
||||
sh -c 'rm -rf /target/* /target/.[!.]* /target/..?* 2>/dev/null || true'
|
||||
# Restaurar .env
|
||||
# Remover o diretorio COMPLETAMENTE usando Docker Alpine como root
|
||||
docker run --rm -v "$PARENT_DIR":/parent alpine:3 \
|
||||
rm -rf /parent/sistema
|
||||
echo "Diretorio removido"
|
||||
fi
|
||||
|
||||
# Recriar o diretorio (sera criado com permissoes do usuario runner)
|
||||
mkdir -p "$DEST"
|
||||
|
||||
# Restaurar .env antes do rsync
|
||||
if [ -f /tmp/.env.backup ]; then
|
||||
cp /tmp/.env.backup "$DEST/.env"
|
||||
rm /tmp/.env.backup
|
||||
echo ".env restaurado"
|
||||
fi
|
||||
echo "Diretorio limpo"
|
||||
fi
|
||||
|
||||
mkdir -p "$DEST"
|
||||
|
||||
# Copiar build completo (sem conflitos de permissao agora)
|
||||
rsync -a --no-owner --no-group \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue