#!/usr/bin/env bash set -Eeuo pipefail SOURCE_CONTAINER="${SOURCE_CONTAINER:-konturai-parser-app}" DEPLOY_DIR="${DEPLOY_DIR:-/home/gitlab-runner/deploy/marketing-parser}" ENV_KEYS=( SPRING_DATASOURCE_URL POSTGRES_USER POSTGRES_PASSWORD SPRING_JPA_HIBERNATE_DDL_AUTO CORS_ALLOWED_ORIGIN FACEBOOK_LEADS_PAGE_ID FACEBOOK_LEADS_ACCESS_TOKEN FACEBOOK_LEADS_CRON FACEBOOK_LEADS_GRAPH_API_VERSION FACEBOOK_LEADS_CALL_CENTER_BASE_URL ) if [[ "${EUID}" -ne 0 ]]; then echo "Run this script as root so it can write the deploy directory for gitlab-runner." >&2 exit 1 fi if ! command -v docker >/dev/null 2>&1; then echo "Docker is required." >&2 exit 1 fi if ! id gitlab-runner >/dev/null 2>&1; then echo "gitlab-runner user does not exist." >&2 exit 1 fi if ! docker inspect "$SOURCE_CONTAINER" >/dev/null 2>&1; then echo "Source container not found: $SOURCE_CONTAINER" >&2 exit 1 fi install -d -o gitlab-runner -g gitlab-runner "$DEPLOY_DIR" TMP_ENV="$(mktemp)" trap 'rm -f "$TMP_ENV"' EXIT PATTERN="$(printf '%s|' "${ENV_KEYS[@]}")" PATTERN="^(${PATTERN%|})=" docker inspect "$SOURCE_CONTAINER" --format '{{range .Config.Env}}{{println .}}{{end}}' \ | grep -E "$PATTERN" > "$TMP_ENV" if [[ ! -s "$TMP_ENV" ]]; then echo "Failed to extract deployment environment from $SOURCE_CONTAINER" >&2 exit 1 fi install -m 600 -o gitlab-runner -g gitlab-runner "$TMP_ENV" "$DEPLOY_DIR/.env.production" echo "Bootstrap complete: wrote $DEPLOY_DIR/.env.production from $SOURCE_CONTAINER"