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
|
if [ ! -f .env ]; then
|
||||||
echo "[*] Creating .env from .env.example..."
|
echo "[*] Creating .env from .env.example..."
|
||||||
cp .env.example .env
|
cp .env.example .env
|
||||||
else
|
|
||||||
echo "[✓] .env file already exists."
|
|
||||||
fi
|
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
|
# 3. Application key
|
||||||
# -----------------------------------------------
|
# -----------------------------------------------
|
||||||
if grep -q "^APP_KEY=$" .env; then
|
if grep -q "^APP_KEY=$" .env; then
|
||||||
echo "[*] Generating application key..."
|
echo "[*] Generating application key..."
|
||||||
php artisan key:generate --ansi
|
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
|
else
|
||||||
echo "[✓] Application key already set."
|
echo "[✓] Application key already set."
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user