mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-08-30 12:45:32 +08:00
docker-dev 清理合并残留:去掉 rsync/mkdir/chmod、删 ulthon_admin_sync 服务、 删 .env(COMPOSE_PROFILES)、删 sync.sh、删 .dockerignore、去 SYNC_INTERVAL。 docker-dev-sync 恢复独立目录并 B-route 化(context: ../../..)。 两个模式各自独立、各自完整。
63 lines
2.4 KiB
Bash
63 lines
2.4 KiB
Bash
#!/bin/bash
|
|
|
|
# ============================================
|
|
# run.sh - docker-dev-sync entrypoint
|
|
# ============================================
|
|
# 1. Syncs host code from /var/www/source to /var/www/html
|
|
# 2. Configures nginx and php-fpm
|
|
# 3. Starts background sync polling
|
|
# 4. Starts application services
|
|
# ============================================
|
|
|
|
# ---- Step 1: Initial code sync (foreground, blocking) ----
|
|
echo "[run] Checking source mount..."
|
|
|
|
if [ -d "/var/www/source" ] && [ "$(ls -A /var/www/source 2>/dev/null)" ]; then
|
|
echo "[run] Source directory mounted, performing initial sync..."
|
|
/bin/bash /var/www/html/source/docker/sync.sh init
|
|
echo "[run] Initial sync finished."
|
|
|
|
# Start background polling
|
|
/bin/bash /var/www/html/source/docker/sync.sh watch &
|
|
SYNC_PID=$!
|
|
echo "[run] Background sync polling started (PID: ${SYNC_PID}, interval: ${SYNC_INTERVAL:-3}s)."
|
|
else
|
|
echo "[run] WARNING: /var/www/source is not mounted or empty."
|
|
echo "[run] Running with build-time files only (no live sync)."
|
|
fi
|
|
|
|
# ---- Step 2: Configure services ----
|
|
|
|
# Copy nginx config
|
|
cp /var/www/html/source/docker/nginx.conf /etc/nginx/sites-available/default
|
|
ln -sf /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
|
|
|
|
# Copy php config files
|
|
cp /var/www/html/source/docker/zz-phprun.ini /usr/local/etc/php/conf.d
|
|
cp /var/www/html/source/docker/zz-phpfpm.conf /usr/local/etc/php-fpm.d
|
|
|
|
# Dev mode: override production PHP config (Opcache, error display, Xdebug)
|
|
cp /var/www/html/source/docker/zzz-dev.ini /usr/local/etc/php/conf.d
|
|
cp /var/www/html/source/docker/zzz-xdebug.ini /usr/local/etc/php/conf.d
|
|
|
|
# ---- Step 3: Set directory permissions ----
|
|
mkdir -p /var/www/html/runtime && chmod -R 777 /var/www/html/runtime
|
|
mkdir -p /var/www/html/public/storage && chmod -R 777 /var/www/html/public/storage
|
|
mkdir -p /var/www/html/public/build && chmod -R 777 /var/www/html/public/build
|
|
mkdir -p /var/www/html/storage && chmod -R 777 /var/www/html/storage
|
|
mkdir -p /var/www/html/memoryspace && chown -R www-data:www-data /var/www/html/memoryspace
|
|
|
|
# ---- Step 4: Output parameters and start services ----
|
|
echo "参数为:$@"
|
|
|
|
if [ "$1" = "server" ] || [ "$1" = "" ]; then
|
|
# Run timer (background)
|
|
su -www-data -c "nohup php /var/www/html/think timer --local --quiet &"
|
|
# Run nginx
|
|
service nginx start
|
|
# Run php-fpm (foreground, keeps container alive)
|
|
php-fpm
|
|
else
|
|
php "/var/www/html/""$@"
|
|
fi
|