Asrasahar commited on
Commit
661780d
·
verified ·
1 Parent(s): 6f23192

Update entrypoint.sh

Browse files
Files changed (1) hide show
  1. entrypoint.sh +19 -17
entrypoint.sh CHANGED
@@ -1,34 +1,36 @@
1
  #!/bin/sh
 
2
  set -e
3
 
4
  if [ -z "${TARGET_HF_SPACE_URL}" ]; then
5
- echo "ERROR: The environment variable TARGET_HF_SPACE_URL is not set."
6
- echo "Please set this secret in your Hugging Face Space settings."
7
  exit 1
8
  fi
9
 
10
- export TARGET_HOSTNAME_NO_SCHEME=$(echo "${TARGET_HF_SPACE_URL}" | sed -e 's|^[^/]*//||' -e 's|/.*$||')
 
 
11
 
12
  if [ -z "${TARGET_HOSTNAME_NO_SCHEME}" ]; then
13
- echo "ERROR: Could not extract hostname from TARGET_HF_SPACE_URL: ${TARGET_HF_SPACE_URL}"
14
  exit 1
15
  fi
16
 
17
- echo "Target Hostname (from secret): ${TARGET_HOSTNAME_NO_SCHEME}"
 
18
 
19
  CONFIG_FILE_PATH="/tmp/nginx.conf"
20
- envsubst '$TARGET_HOSTNAME_NO_SCHEME' < /etc/nginx/nginx.conf.template > ${CONFIG_FILE_PATH}
21
 
22
- echo "Nginx configuration generated at: ${CONFIG_FILE_PATH}"
 
23
 
24
- # --- تلاش برای حل مشکل PID ---
25
- # روش ۱: به Nginx بگوییم که اصلاً فایل PID ایجاد نکند.
26
- # 'pid /dev/null;' در خط فرمان به این معنی است که فایل PID به ناکجا آباد فرستاده شود.
27
- # یا 'pid off;' اگر نسخه Nginx پشتیبانی کند (کمتر رایج در خط فرمان).
28
- # nginx -g 'daemon off; pid /dev/null;' -c ${CONFIG_FILE_PATH}
29
 
30
- # روش ۲: مسیر فایل PID را به جایی قابل نوشتن در خط فرمان تغییر می‌دهیم.
31
- # این باید بر هرگونه تنظیم پیش‌فرض در ایمیج یا فایل کانفیگ غلبه کند.
32
- PID_FILE_PATH="/tmp/nginx.pid"
33
- echo "Attempting to run Nginx with PID file at ${PID_FILE_PATH}"
34
- exec nginx -g "daemon off; pid ${PID_FILE_PATH};" -c ${CONFIG_FILE_PATH}
 
1
  #!/bin/sh
2
+
3
  set -e
4
 
5
  if [ -z "${TARGET_HF_SPACE_URL}" ]; then
6
+ echo "ERROR: The environment variable TARGET_HF_SPACE_URL is not set." >&2
7
+ echo "Please set this secret in your Hugging Face Space settings." >&2
8
  exit 1
9
  fi
10
 
11
+ # استخراج هاست‌نیم از URL هدف (مثال: https://user-space.hf.space/something -> user-space.hf.space)
12
+ # این روش نسبت به sed برای استخراج بخش سوم URL (هاست‌نیم) معمولا پایدارتر است.
13
+ export TARGET_HOSTNAME_NO_SCHEME=$(echo "${TARGET_HF_SPACE_URL}" | awk -F/ '{print $3}')
14
 
15
  if [ -z "${TARGET_HOSTNAME_NO_SCHEME}" ]; then
16
+ echo "ERROR: Could not extract hostname from TARGET_HF_SPACE_URL: ${TARGET_HF_SPACE_URL}" >&2
17
  exit 1
18
  fi
19
 
20
+ echo "Target URL (from secret): ${TARGET_HF_SPACE_URL}"
21
+ echo "Extracted Target Hostname (for Nginx): ${TARGET_HOSTNAME_NO_SCHEME}"
22
 
23
  CONFIG_FILE_PATH="/tmp/nginx.conf"
24
+ PID_FILE_PATH="/tmp/nginx.pid"
25
 
26
+ # جایگزینی متغیر محیطی در فایل template و ایجاد فایل کانفیگ نهایی
27
+ envsubst '$TARGET_HOSTNAME_NO_SCHEME' < /etc/nginx/nginx.conf.template > "${CONFIG_FILE_PATH}"
28
 
29
+ echo "Nginx configuration generated at: ${CONFIG_FILE_PATH}"
30
+ echo "Nginx PID file will be at: ${PID_FILE_PATH}"
31
+ echo "Starting Nginx..."
 
 
32
 
33
+ # اجرای Nginx در foreground و با فایل کانفیگ مشخص شده
34
+ # daemon off; باعث می‌شود Nginx در foreground اجرا شود که برای کانتینرها مناسب است.
35
+ # pid ${PID_FILE_PATH}; مسیر فایل PID را مشخص می‌کند.
36
+ exec nginx -g "daemon off; pid ${PID_FILE_PATH};" -c "${CONFIG_FILE_PATH}"