sft0farid commited on
Commit
9b4287f
·
verified ·
1 Parent(s): e5ec0b3

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +13 -14
Dockerfile CHANGED
@@ -9,21 +9,25 @@ RUN apt-get update && apt-get install -y \
9
  wget \
10
  && rm -rf /var/lib/apt/lists/*
11
 
12
- # 2. Установка zrok (от имени root)
13
- RUN curl -sSf https://get.openziti.io/install.bash | bash -s zrok
14
-
15
- # 3. Создание non-root пользователя для Hugging Face Spaces [1]
 
 
 
 
 
16
  RUN useradd -m -u 1000 user
17
 
18
- # 4. Создание всех нужных абсолютных путей и выдача прав пользователю "user" [1]
19
- # Supervisor требует права на запись в /var/run и /var/log
20
  RUN mkdir -p /data/aiclient2api /data/kirogo /data/bifrost /etc/supervisor/conf.d /var/log/supervisor /var/run/supervisor \
21
  && chown -R user:user /data /etc/supervisor /var/log/supervisor /var/run/supervisor
22
 
23
- # 5. Переключение на non-root пользователя [1], [2]
24
  USER user
25
 
26
- # 6. Установка рабочей директории (абсолютный путь)
27
  WORKDIR /data
28
 
29
  # ============================================
@@ -45,8 +49,7 @@ RUN git clone https://github.com/user/bifrost.git /data/bifrost \
45
  && pip install --no-cache-dir -r /data/bifrost/requirements.txt
46
 
47
  # ============================================
48
- # CONFIGS (Heredoc синтаксис) [14]
49
- # ВАЖНО: используем --chown=user:user чтобы у процесса был доступ к конфигурации
50
  # ============================================
51
 
52
  COPY --chown=user:user <<EOF /etc/supervisor/conf.d/supervisord.conf
@@ -87,7 +90,6 @@ stderr_logfile=/dev/stderr
87
  stderr_logfile_maxbytes=0
88
 
89
  [program:zrok]
90
- # Добавлен флаг --headless для работы в контейнере [9]
91
  command=zrok share reserved %(ENV_ZROK_SHARE_NAME)s --headless
92
  autostart=true
93
  autorestart=true
@@ -97,7 +99,6 @@ stderr_logfile=/dev/stderr
97
  stderr_logfile_maxbytes=0
98
  EOF
99
 
100
- # Скрипт запуска
101
  COPY --chown=user:user <<'EOF' /data/start.sh
102
  #!/bin/bash
103
  if [ -n "$ZROK_TOKEN" ]; then
@@ -108,8 +109,6 @@ EOF
108
 
109
  RUN chmod +x /data/start.sh
110
 
111
- # Наружу выставляем только порт 7860 для основного UI
112
  EXPOSE 7860
113
 
114
- # Запуск по абсолютному пути
115
  CMD ["/data/start.sh"]
 
9
  wget \
10
  && rm -rf /var/lib/apt/lists/*
11
 
12
+ # 2. Установка zrok (качаем стабильный бинарник напрямую, без скриптов)
13
+ # Это решает проблему с exit code 1
14
+ RUN wget https://github.com/openziti/zrok/releases/download/v0.4.42/zrok_0.4.42_linux_amd64.tar.gz \
15
+ && tar -xzf zrok_0.4.42_linux_amd64.tar.gz zrok \
16
+ && mv zrok /usr/local/bin/ \
17
+ && chmod +x /usr/local/bin/zrok \
18
+ && rm zrok_0.4.42_linux_amd64.tar.gz
19
+
20
+ # 3. Создание non-root пользователя для Hugging Face Spaces
21
  RUN useradd -m -u 1000 user
22
 
23
+ # 4. Создание всех нужных абсолютных путей и выдача прав пользователю "user"
 
24
  RUN mkdir -p /data/aiclient2api /data/kirogo /data/bifrost /etc/supervisor/conf.d /var/log/supervisor /var/run/supervisor \
25
  && chown -R user:user /data /etc/supervisor /var/log/supervisor /var/run/supervisor
26
 
27
+ # 5. Переключение на non-root пользователя
28
  USER user
29
 
30
+ # 6. Установка рабочей директории
31
  WORKDIR /data
32
 
33
  # ============================================
 
49
  && pip install --no-cache-dir -r /data/bifrost/requirements.txt
50
 
51
  # ============================================
52
+ # CONFIGS (Heredoc синтаксис)
 
53
  # ============================================
54
 
55
  COPY --chown=user:user <<EOF /etc/supervisor/conf.d/supervisord.conf
 
90
  stderr_logfile_maxbytes=0
91
 
92
  [program:zrok]
 
93
  command=zrok share reserved %(ENV_ZROK_SHARE_NAME)s --headless
94
  autostart=true
95
  autorestart=true
 
99
  stderr_logfile_maxbytes=0
100
  EOF
101
 
 
102
  COPY --chown=user:user <<'EOF' /data/start.sh
103
  #!/bin/bash
104
  if [ -n "$ZROK_TOKEN" ]; then
 
109
 
110
  RUN chmod +x /data/start.sh
111
 
 
112
  EXPOSE 7860
113
 
 
114
  CMD ["/data/start.sh"]