57 lines
2.0 KiB
Bash
Executable File
57 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
# Runs `pnpm install` if `pnpm-lock.yaml` has changed to avoid a full `docker build` when changing branches/dependencies
|
|
## Dockerfile calculates a hash and stores it in `.pnpmhash/pnpm-lock.yaml.md5`
|
|
## compose.yml mounts a named volume to persist the `.pnpmhash` directory
|
|
(
|
|
cd /home/ghost
|
|
pnpm_lock_hash_file_path=".pnpmhash/pnpm-lock.yaml.md5"
|
|
calculated_hash=$(md5sum pnpm-lock.yaml | awk '{print $1}')
|
|
|
|
if [ -f "$pnpm_lock_hash_file_path" ]; then
|
|
stored_hash=$(cat "$pnpm_lock_hash_file_path")
|
|
if [ "$calculated_hash" != "$stored_hash" ]; then
|
|
echo "INFO: pnpm-lock.yaml has changed. Running pnpm install..."
|
|
pnpm install
|
|
mkdir -p .pnpmhash
|
|
echo "$calculated_hash" > "$pnpm_lock_hash_file_path"
|
|
fi
|
|
else
|
|
echo "WARNING: pnpm-lock.yaml hash file ($pnpm_lock_hash_file_path) not found. Running pnpm install as a precaution."
|
|
pnpm install
|
|
mkdir -p .pnpmhash
|
|
echo "$calculated_hash" > "$pnpm_lock_hash_file_path"
|
|
fi
|
|
)
|
|
|
|
# Configure Ghost to use Tinybird Local
|
|
if [ -f /mnt/shared-config/.env.tinybird ]; then
|
|
source /mnt/shared-config/.env.tinybird
|
|
if [ -n "${TINYBIRD_WORKSPACE_ID:-}" ] && [ -n "${TINYBIRD_ADMIN_TOKEN:-}" ]; then
|
|
export tinybird__workspaceId="$TINYBIRD_WORKSPACE_ID"
|
|
export tinybird__adminToken="$TINYBIRD_ADMIN_TOKEN"
|
|
else
|
|
echo "WARNING: Tinybird not enabled: Missing required environment variables"
|
|
fi
|
|
else
|
|
echo "WARNING: Tinybird not enabled: .env file not found"
|
|
fi
|
|
|
|
# Configure Stripe webhook secret
|
|
if [ -f /mnt/shared-config/.env.stripe ]; then
|
|
source /mnt/shared-config/.env.stripe
|
|
if [ -n "${STRIPE_WEBHOOK_SECRET:-}" ]; then
|
|
export WEBHOOK_SECRET="$STRIPE_WEBHOOK_SECRET"
|
|
echo "Stripe webhook secret configured successfully"
|
|
else
|
|
echo "WARNING: Stripe webhook secret not found in shared config"
|
|
fi
|
|
fi
|
|
|
|
pnpm nx reset
|
|
|
|
# Execute the CMD
|
|
exec "$@"
|