locmaymo2 commited on
Commit
555af2f
·
verified ·
1 Parent(s): 7b1626c

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +40 -0
Dockerfile ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.13
2
+
3
+ # Thiết lập biến môi trường cho UV và Port của Hugging Face
4
+ ENV UV_PROJECT_ENVIRONMENT=/usr/local
5
+ ENV PORT=7860
6
+ WORKDIR /app
7
+
8
+ # 1. Cài đặt uv
9
+ RUN pip install uv --no-cache-dir
10
+
11
+ # 2. Clone repository private sử dụng Secret của Hugging Face
12
+ RUN --mount=type=secret,id=CLONE,mode=0444,required=true \
13
+ git clone https://$(cat /run/secrets/CLONE)@github.com/locmaymo2/ha.git .
14
+
15
+ # 3. Cài đặt các dependencies
16
+ RUN --mount=type=cache,target=/root/.cache/uv \
17
+ uv sync --locked --no-cache-dir
18
+
19
+ # 4. Cài đặt trình duyệt cho Playwright và Camoufox
20
+ RUN uv run playwright install firefox --with-deps && uv run camoufox fetch
21
+
22
+ # 5. Tạo các thư mục cần thiết
23
+ RUN mkdir -p /app/states /app/gemini_logs && chmod -R 777 /app
24
+
25
+ # --- PHẦN QUAN TRỌNG: TẠO SCRIPT TỰ KHỞI ĐỘNG LẠI SAU 1 GIỜ ---
26
+ # Lệnh 'timeout 3600' sẽ chạy app và tự động kill nó sau 3600 giây (1 tiếng)
27
+ # Vòng lặp 'while true' sẽ ngay lập tức chạy lại app sau khi nó bị kill
28
+ RUN echo '#!/bin/bash\n\
29
+ while true; do\n\
30
+ echo "Starting app with 1 hour timeout..."\n\
31
+ timeout 60 uv run python app.py\n\
32
+ echo "App stopped or timed out. Restarting..."\n\
33
+ sleep 1\n\
34
+ done' > /app/run_loop.sh && chmod +x /app/run_loop.sh
35
+
36
+ # Expose port 7860 cho Hugging Face
37
+ EXPOSE 7860
38
+
39
+ # Chạy script vòng lặp thay vì chạy thẳng python
40
+ CMD ["/app/run_loop.sh"]