mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 01:28:34 +08:00
fix(kit): update.sh troca o WAHA amd64 de quem ja roda em ARM64
O install.sh antigo gravava devlikeapro/waha (e, desde 13/08, latest-2026.7.2) no .env; os dois indices so tem linux/amd64, e o enter_project so preenche WAHA_IMAGE quando ela esta vazia. Em ARM64, gravar_imagens passa a trocar SO esses valores conhecidos (e o vazio) pela variante oficial NOWEB ARM64, e exporta o valor, porque o compose prefere o ambiente ao .env. Escolha do operador (WAHA Plus, outra tag) fica intacta. Mora em gravar_imagens, e nao numa linha do update.sh, porque e a funcao que o update.sh ANTIGO chama depois de reler o kit: a troca chega ja na atualizacao que a traz. Casos 3c/3d em guarda-arm-nao-mata-a-recuperacao (sabotado: 3 vermelhos). Refs #1938 #1266 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
b2f40856ac
commit
5ce4e6e6ac
@@ -43,6 +43,19 @@ imagem_waha_padrao_para_host() {
|
||||
esac
|
||||
}
|
||||
|
||||
# Quem já roda em ARM (#1266) tem no .env o WAHA que o install.sh antigo
|
||||
# gravava — `devlikeapro/waha` e, desde 13/08/2026, `latest-2026.7.2` —, e os
|
||||
# dois índices só têm linux/amd64. Troca SÓ esses valores conhecidos (e o vazio,
|
||||
# em que o default do compose seria o amd64); qualquer outra escolha do
|
||||
# operador, WAHA Plus inclusive, fica intacta. Pura no argumento, como a de cima.
|
||||
waha_amd64_conhecido_em_arm() { # waha_amd64_conhecido_em_arm <arquitetura> <WAHA_IMAGE do .env> → 0 = trocar
|
||||
case "${1:-}" in aarch64|arm64) ;; *) return 1 ;; esac
|
||||
case "${2:-}" in
|
||||
""|devlikeapro/waha|devlikeapro/waha:latest|devlikeapro/waha:latest-2026.7.2) return 0 ;;
|
||||
esac
|
||||
return 1
|
||||
}
|
||||
|
||||
# ── JÁ EXISTE UMA INSTALAÇÃO REAL AQUI? (#1266, corrigido pelo #1778) ───────
|
||||
#
|
||||
# A guarda do #1042 vivia no TOPO dos dois scripts, e por isso matava antes de
|
||||
@@ -1498,6 +1511,19 @@ gravar_imagens() {
|
||||
# não no `stable` móvel do default do compose.
|
||||
set_env_var "$envfile" VOICE_AGENT_IMAGE "${IMG_VOICE_AGENT}:${versao}"
|
||||
set_env_var "$envfile" VOICE_AGENT_PULL_POLICY "$politica"
|
||||
# O WAHA de quem já roda em ARM mora AQUI, e não numa linha do update.sh: é
|
||||
# esta função que o update.sh ANTIGO chama depois de reler o kit, então é
|
||||
# assim que a troca chega já na atualização que a traz. O export vale porque
|
||||
# o compose prefere a variável do ambiente (que o enter_project exportou com o
|
||||
# valor velho) à do .env.
|
||||
local waha_atual
|
||||
waha_atual="$(sed -n 's/^WAHA_IMAGE=//p' "$envfile" 2>/dev/null | tail -1 | tr -d "\"'")"
|
||||
if waha_amd64_conhecido_em_arm "$(uname -m 2>/dev/null || true)" "$waha_atual"; then
|
||||
WAHA_IMAGE="$(imagem_waha_padrao_para_host)"
|
||||
export WAHA_IMAGE
|
||||
set_env_var "$envfile" WAHA_IMAGE "$WAHA_IMAGE"
|
||||
c_ylw "$(t " (WAHA trocado para a variante oficial ARM64: {1})" "$WAHA_IMAGE")"
|
||||
fi
|
||||
}
|
||||
|
||||
# ── Os segredos da chamada de voz, no .env de quem já tinha instalado ────────
|
||||
|
||||
@@ -36,6 +36,7 @@ declare -A _ES=(
|
||||
["Este servidor usa arquitetura '{1}', mas o DeskcommCRM não publica imagens para ela (linux/amd64 e linux/arm64 estão disponíveis)."]="Este servidor usa arquitectura '{1}', pero DeskcommCRM no publica imágenes para ella (linux/amd64 y linux/arm64 están disponibles)."
|
||||
[" Use uma VPS x86_64/amd64 ou ARM64/aarch64. Repetir o download não resolve."]=" Usa una VPS x86_64/amd64 o ARM64/aarch64. Repetir la descarga no soluciona nada."
|
||||
["Este servidor usa arquitetura '{1}', e as imagens publicadas do DeskcommCRM são linux/amd64 e linux/arm64."]="Este servidor usa arquitectura '{1}', y las imágenes publicadas de DeskcommCRM son linux/amd64 y linux/arm64."
|
||||
[" (WAHA trocado para a variante oficial ARM64: {1})"]=" (WAHA cambiado a la variante oficial ARM64: {1})"
|
||||
["Como esta instalação JÁ EXISTE, sigo em frente: as imagens da versão alvo serão construídas nesta própria VPS."]="Como esta instalación YA EXISTE, sigo adelante: las imágenes de la versión destino se construirán en esta misma VPS."
|
||||
["Leva de 15 a 25 minutos. Uma instalação NOVA exige x86_64/amd64 ou ARM64/aarch64 com imagens publicadas."]="Tarda de 15 a 25 minutos. Una instalación NUEVA requiere x86_64/amd64 o ARM64/aarch64 con imágenes publicadas."
|
||||
[" (rede '{1}' criada — é por ela que o Traefik alcança o CRM)"]=" (red '{1}' creada: por ella Traefik llega al CRM)"
|
||||
|
||||
@@ -80,6 +80,8 @@ mkdir -p "$WORK/bin"
|
||||
cat > "$WORK/bin/docker" <<'STUB'
|
||||
#!/usr/bin/env bash
|
||||
printf '%s\n' "$*" >> "$DOCKER_LOG"
|
||||
# O WAHA que o compose vai puxar: o ambiente vence o .env no compose.
|
||||
case " $* " in *" pull"*) printf 'ambiente WAHA_IMAGE=%s\n' "${WAHA_IMAGE:-}" >> "$DOCKER_LOG" ;; esac
|
||||
case " $* " in
|
||||
# O overlay de build local: build e up são sucesso por definição aqui, e é a
|
||||
# diferença entre as DUAS chamadas de `up -d` que o update.sh faz.
|
||||
@@ -302,6 +304,34 @@ check "a voz recebe a mesma versão do app" \
|
||||
check "a atualização preserva o WAHA ARM64 escolhido na instalação" \
|
||||
grep -q '^WAHA_IMAGE=devlikeapro/waha:noweb-arm-2026.7.2$' "$ENV3B"
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
echo
|
||||
echo '── 3c. ARM64 que já roda com o WAHA amd64 do install.sh antigo passa para o NOWEB ARM64'
|
||||
# O install.sh antigo gravava `latest-2026.7.2`, cujo índice só tem linux/amd64.
|
||||
# A troca mora em `gravar_imagens`, que o update.sh chama depois de reler o kit.
|
||||
R3C="$WORK/caso3c"; mkdir -p "$R3C"
|
||||
montar_instalacao "$R3C" 0 '"devlikeapro/waha:latest-2026.7.2"'
|
||||
OUT3C="$WORK/saida3c.txt"
|
||||
rodar_update "$R3C" aarch64 0 "$OUT3C"; RC3C="$RC"
|
||||
ENV3C="$R3C/deskcommcrm/.env"
|
||||
check "em ARM64 com WAHA amd64 o update.sh sai com 0 (rc=$RC3C)" test "$RC3C" -eq 0
|
||||
check "o .env passa a ter o WAHA NOWEB ARM64" \
|
||||
grep -q '^WAHA_IMAGE=devlikeapro/waha:noweb-arm-2026.7.2$' "$ENV3C"
|
||||
check "e só uma linha de WAHA_IMAGE" test "$(grep -c '^WAHA_IMAGE=' "$ENV3C")" -eq 1
|
||||
check "o pull já sai com o WAHA ARM64 no ambiente (o ambiente vence o .env)" \
|
||||
grep -q '^ambiente WAHA_IMAGE=devlikeapro/waha:noweb-arm-2026.7.2$' "$DOCKER_LOG"
|
||||
check "a troca é anunciada numa linha" grep -q 'WAHA trocado para a variante oficial ARM64' "$OUT3C"
|
||||
|
||||
R3D="$WORK/caso3d"; mkdir -p "$R3D"
|
||||
montar_instalacao "$R3D" 0 devlikeapro/waha-plus:2026.7.2
|
||||
OUT3D="$WORK/saida3d.txt"
|
||||
rodar_update "$R3D" aarch64 0 "$OUT3D"; RC3D="$RC"
|
||||
check "em ARM64 um WAHA escolhido pelo operador fica intacto (rc=$RC3D)" \
|
||||
grep -q '^WAHA_IMAGE=devlikeapro/waha-plus:2026.7.2$' "$R3D/deskcommcrm/.env"
|
||||
|
||||
check "em x86_64 o WAHA amd64 não muda" \
|
||||
grep -q '^WAHA_IMAGE=devlikeapro/waha:latest-2026.7.2$' "$R3/deskcommcrm/.env"
|
||||
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
echo
|
||||
echo '── 4. A DECISÃO, isolada: a função pura que decide'
|
||||
|
||||
Reference in New Issue
Block a user