Asrasahar commited on
Commit
6c7713d
·
verified ·
1 Parent(s): 1e5b0db

Update entrypoint.sh

Browse files
Files changed (1) hide show
  1. entrypoint.sh +12 -16
entrypoint.sh CHANGED
@@ -1,18 +1,14 @@
1
  #!/bin/sh
2
- set -e # اگر دستوری با خطا مواجه شد، اسکریپت متوقف شود
3
 
4
- # بررسی اینکه آیا متغیر محیطی TARGET_HF_SPACE_URL تنظیم شده است یا نه
5
  if [ -z "${TARGET_HF_SPACE_URL}" ]; then
6
  echo "ERROR: The environment variable TARGET_HF_SPACE_URL is not set."
7
  echo "Please set this secret in your Hugging Face Space settings."
8
  exit 1
9
  fi
10
 
11
- # استخراج هاست‌نیم بدون پروتکل (https://) از TARGET_HF_SPACE_URL
12
- # مثال: از https://trudy-gemini-realtime-console.hf.space به trudy-gemini-realtime-console.hf.space
13
  export TARGET_HOSTNAME_NO_SCHEME=$(echo "${TARGET_HF_SPACE_URL}" | sed -e 's|^[^/]*//||' -e 's|/.*$||')
14
 
15
- # بررسی اینکه آیا استخراج هاست‌نیم موفقیت‌آمیز بوده
16
  if [ -z "${TARGET_HOSTNAME_NO_SCHEME}" ]; then
17
  echo "ERROR: Could not extract hostname from TARGET_HF_SPACE_URL: ${TARGET_HF_SPACE_URL}"
18
  exit 1
@@ -20,19 +16,19 @@ fi
20
 
21
  echo "Target Hostname (from secret): ${TARGET_HOSTNAME_NO_SCHEME}"
22
 
23
- # --- تغییر مهم اینجاست ---
24
- # فایل کانفیگ نهایی را در /tmp ایجاد می‌کنیم چون کاربر nginx اجازه نوشتن در آنجا را دارد
25
  CONFIG_FILE_PATH="/tmp/nginx.conf"
26
-
27
- # جایگزینی متغیرها در nginx.conf.template و ایجاد nginx.conf نهایی در مسیر جدید
28
- # از envsubst برای جایگزینی متغیرهای محیطی در فایل الگو استفاده می‌کنیم.
29
- # '$TARGET_HOSTNAME_NO_SCHEME' به envsubst می‌گوید که فقط این متغیر را جایگزین کند.
30
  envsubst '$TARGET_HOSTNAME_NO_SCHEME' < /etc/nginx/nginx.conf.template > ${CONFIG_FILE_PATH}
31
 
32
  echo "Nginx configuration generated at: ${CONFIG_FILE_PATH}"
33
- # محتوای فایل کانفیگ تولید شده را برای دیباگ نمایش بده (اختیاری)
34
- # cat ${CONFIG_FILE_PATH}
35
 
36
- # --- تغییر مهم بعدی اینجاست ---
37
- # Nginx را با فایل کانفیگ مشخص شده از مسیر /tmp اجرا می‌کنیم
38
- exec nginx -g 'daemon off;' -c ${CONFIG_FILE_PATH}
 
 
 
 
 
 
 
 
 
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
 
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}