Fix: persist APP_KEY across redeploys via Docker env vars
- Entrypoint now overrides .env with Docker environment variables - Supports all key vars: APP_KEY, APP_URL, DB_*, REDIS_* - Warns to save APP_KEY in Dokploy if auto-generated - Fixes DecryptException on proclamatori encrypted fields
This commit is contained in:
@@ -21,16 +21,50 @@ fi
|
||||
if [ ! -f .env ]; then
|
||||
echo "[*] Creating .env from .env.example..."
|
||||
cp .env.example .env
|
||||
else
|
||||
echo "[✓] .env file already exists."
|
||||
fi
|
||||
|
||||
# Override .env values with Docker environment variables (if set)
|
||||
# This ensures Dokploy env vars take precedence
|
||||
if [ -n "$APP_KEY" ]; then
|
||||
sed -i "s|^APP_KEY=.*|APP_KEY=${APP_KEY}|" .env
|
||||
fi
|
||||
if [ -n "$APP_URL" ]; then
|
||||
sed -i "s|^APP_URL=.*|APP_URL=${APP_URL}|" .env
|
||||
fi
|
||||
if [ -n "$DB_HOST" ]; then
|
||||
sed -i "s|^DB_HOST=.*|DB_HOST=${DB_HOST}|" .env
|
||||
fi
|
||||
if [ -n "$DB_DATABASE" ]; then
|
||||
sed -i "s|^DB_DATABASE=.*|DB_DATABASE=${DB_DATABASE}|" .env
|
||||
fi
|
||||
if [ -n "$DB_USERNAME" ]; then
|
||||
sed -i "s|^DB_USERNAME=.*|DB_USERNAME=${DB_USERNAME}|" .env
|
||||
fi
|
||||
if [ -n "$DB_PASSWORD" ]; then
|
||||
sed -i "s|^DB_PASSWORD=.*|DB_PASSWORD=${DB_PASSWORD}|" .env
|
||||
fi
|
||||
if [ -n "$REDIS_HOST" ]; then
|
||||
sed -i "s|^REDIS_HOST=.*|REDIS_HOST=${REDIS_HOST}|" .env
|
||||
fi
|
||||
if [ -n "$REDIS_PASSWORD" ]; then
|
||||
sed -i "s|^REDIS_PASSWORD=.*|REDIS_PASSWORD=${REDIS_PASSWORD}|" .env
|
||||
fi
|
||||
echo "[✓] .env file ready."
|
||||
|
||||
# -----------------------------------------------
|
||||
# 3. Application key
|
||||
# -----------------------------------------------
|
||||
if grep -q "^APP_KEY=$" .env; then
|
||||
echo "[*] Generating application key..."
|
||||
php artisan key:generate --ansi
|
||||
echo ""
|
||||
echo "╔══════════════════════════════════════════════════════╗"
|
||||
echo "║ IMPORTANT: Save this APP_KEY in Dokploy env vars! ║"
|
||||
echo "║ Otherwise encrypted data will be lost on redeploy. ║"
|
||||
echo "╚══════════════════════════════════════════════════════╝"
|
||||
echo ""
|
||||
echo " APP_KEY=$(grep '^APP_KEY=' .env | cut -d= -f2-)"
|
||||
echo ""
|
||||
else
|
||||
echo "[✓] Application key already set."
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user