Files
adaptador-planilhas/docker/entrypoint.sh
T
Ferraz FagundesandClaude Opus 5.5 e142a44c01
ci / lint, typecheck, testes e build (push) Has been cancelled
ci / Postgres e Redis reais (push) Has been cancelled
ci / imagem Docker Linux (push) Has been cancelled
Torna os scripts .sh executáveis e fixa LF para o contêiner
docker/entrypoint.sh estava versionado com modo 100644. Num build Linux o
ENTRYPOINT em forma exec falharia com permission denied. O mesmo vale para
.github/scripts/async-journey.sh, usado pelo job image do CI.

Sem .gitattributes, um checkout com core.autocrlf=true grava os .sh em CRLF,
e uma imagem construída a partir dessa cópia quebra o #!/bin/sh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 20:37:56 -03:00

48 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
# Entrada única da imagem. Mantém os comandos curtos e garante que todos os
# scripts operacionais rodem no MESMO processo do contêiner.
#
# Por que `node --import tsx` e não o CLI do tsx: o CLI cria um processo filho,
# e o SIGTERM do `docker stop` pararia no pai. O worker precisa receber o sinal
# para esperar o tick corrente e liberar o lock no `finally`.
set -eu
TSX="--import=tsx"
usage() {
cat <<'EOF'
uso: entrypoint.sh <comando> [args]
web servidor Next (saída standalone)
worker processo de fila
migrate [--dry-run]
seed-staging
flag <workspace_id> on|off
cleanup
verify-config
check-bucket
smoke
worker-health confere o heartbeat do worker (healthcheck do contêiner)
exec <cmd...> qualquer outro comando
EOF
}
cmd="${1:-web}"
[ $# -gt 0 ] && shift || true
case "$cmd" in
web) exec node server.js ;;
worker) exec node $TSX scripts/worker.ts ;;
migrate) exec node $TSX scripts/migrate.ts "$@" ;;
seed-staging) exec node $TSX scripts/seed-staging.ts "$@" ;;
flag) exec node $TSX scripts/set-flag.ts "$@" ;;
cleanup) exec node $TSX scripts/cleanup-temp.ts "$@" ;;
verify-config) exec node $TSX scripts/verify-config.ts ;;
check-bucket) exec node $TSX scripts/check-bucket.ts ;;
smoke) exec node $TSX scripts/smoke-staging.ts ;;
worker-health) exec node docker/worker-health.mjs ;;
exec) exec "$@" ;;
-h|--help|help) usage ;;
*) echo "comando desconhecido: $cmd" >&2; usage >&2; exit 2 ;;
esac