Files
Bram d72ee4a7d2
Build and Push Docker Images / build-and-push (push) Failing after 37s
intermediate commit
2025-11-17 21:56:21 +01:00

78 lines
2.5 KiB
Bash

#!/bin/bash
set -euo pipefail
#
# Teleport setup (installed at runtime to allow choosing version/edition via env)
#
if [[ -n "${TELEPORT_VERSION:-}" ]]; then
echo "Installing Teleport ${TELEPORT_VERSION} (${TELEPORT_EDITION:-oss})..."
curl -fsSL https://goteleport.com/static/install.sh | bash -s "${TELEPORT_VERSION}" "${TELEPORT_EDITION:-oss}"
else
echo "TELEPORT_VERSION not set; skipping Teleport install. Ensure tsh/tctl are available."
fi
# Configure Teleport node if a token is provided (optional)
if [[ -n "${TELEPORT_TOKEN:-}" && -n "${TELEPORT_URL:-}" ]]; then
if [[ ! -f /etc/teleport.yaml ]]; then
echo "Configuring Teleport node with token..."
teleport configure --roles=node --token="${TELEPORT_TOKEN}" --proxy="${TELEPORT_URL}" --no-acme -o file
fi
# Ensure nodename matches container hostname
HOSTNAME=$(hostname)
sed -i "s/^ nodename:.*/ nodename: ${HOSTNAME}/" /etc/teleport.yaml || true
echo "Starting Teleport node in background..."
nohup teleport start >/var/log/teleport.log 2>&1 &
fi
#
# Build flags for tsh/tctl from environment
#
TSH_FLAGS=()
TCTL_FLAGS=()
if [[ -n "${TELEPORT_URL:-}" ]]; then
TSH_FLAGS+=("--proxy=${TELEPORT_URL}")
TCTL_FLAGS+=("--proxy=${TELEPORT_URL}")
fi
if [[ -n "${TELEPORT_IDENTITY_FILE:-}" && -f "${TELEPORT_IDENTITY_FILE}" ]]; then
echo "Using Teleport identity: ${TELEPORT_IDENTITY_FILE}"
TSH_FLAGS+=("--identity=${TELEPORT_IDENTITY_FILE}")
TCTL_FLAGS+=("--identity=${TELEPORT_IDENTITY_FILE}")
fi
# Optional: extra flags from env (space-separated)
if [[ -n "${EXTRA_TSH_FLAGS:-}" ]]; then
# shellcheck disable=SC2206
TSH_FLAGS+=( ${EXTRA_TSH_FLAGS} )
fi
if [[ -n "${EXTRA_TCTL_FLAGS:-}" ]]; then
# shellcheck disable=SC2206
TCTL_FLAGS+=( ${EXTRA_TCTL_FLAGS} )
fi
echo "Starting teleport-auto-remover main loop (interval: ${LOOP_INTERVAL_SECONDS:-60}s, execute: ${EXECUTE:-false})"
while true; do
TS=$(date -Iseconds)
echo "[${TS}] Running prune…"
set +e
# Build CLI args for main.py with repeated tsh/tctl flags (skip empties)
ARGS=(/app/main.py)
for f in "${TSH_FLAGS[@]}"; do
[[ -n "$f" ]] && ARGS+=("--tsh-flag=$f")
done
for f in "${TCTL_FLAGS[@]}"; do
[[ -n "$f" ]] && ARGS+=("--tctl-flag=$f")
done
if [[ "${EXECUTE:-false}" == "true" ]]; then ARGS+=(--execute); fi
# Debug-print the exact command for troubleshooting
printf 'Invoking: python3'
for a in "${ARGS[@]}"; do printf ' %q' "$a"; done; printf '\n'
python3 "${ARGS[@]}"
EXIT_CODE=$?
set -e
echo "Run finished with code ${EXIT_CODE}."
sleep "${LOOP_INTERVAL_SECONDS:-60}"
done