traffic-rules-chatbot / Dockerfile
deddoggo's picture
test
4b0b556
raw
history blame
3.16 kB
# Dockerfile
# Bước 1: Chọn base image
FROM continuumio/miniconda3:latest
ENV DEBIAN_FRONTEND=noninteractive
# Bước 2: Thiết lập thư mục làm việc
WORKDIR /app
# Bước 3: Sao chép file định nghĩa môi trường Conda
COPY environment.yml .
# Cài đặt mamba vào môi trường base của Conda từ conda-forge
RUN conda install -n base -c conda-forge mamba -y
# Bước 4: Tạo môi trường Conda bằng mamba
RUN mamba env create -f environment.yml && \
conda clean -afy
# Bước 5: Kích hoạt môi trường Conda
SHELL ["conda", "run", "-n", "myapp-env", "/bin/bash", "-c"] # Replace myapp-env if your env name is different
# ... (Rest of your Dockerfile: pip install torch, verification steps, etc.) ...
# Ensure your PyTorch pip install (Step 6) still targets the same CUDA version
# (e.g., cu118 if your environment.yml has cudatoolkit=11.8.0)
# Bước 7: Xác thực cài đặt (RẤT QUAN TRỌNG)
# Output ở đây sẽ cho bạn biết PyTorch có nhận CUDA 11.8 không.
RUN echo "--- KIỂM TRA MÔI TRƯỜNG SAU KHI CÀI ĐẶT ---" && \
echo "Kiến trúc hệ thống:" && uname -m && \
echo "Đường dẫn Conda:" && which conda && \
echo "Đường dẫn Python:" && which python && \
echo "Phiên bản Python:" && python --version && \
echo "--- Thông tin PyTorch: ---" && \
python -c "import torch; print(f'PyTorch version: {torch.__version__}'); print(f'CUDA available for PyTorch: {torch.cuda.is_available()}'); print(f'PyTorch built with CUDA version: {torch.version.cuda if torch.cuda.is_available() else \"N/A\"}'); print(f'cuDNN version: {torch.backends.cudnn.version() if torch.cuda.is_available() and torch.backends.cudnn.is_available() else \"N/A\"}'); print(f'Number of GPUs available to PyTorch: {torch.cuda.device_count()}')" && \
echo "--- Thông tin Faiss: ---" && \
python -c "import faiss; print(f'Faiss version: {faiss.__version__}'); print(f'Number of GPUs available to Faiss: {faiss.get_num_gpus()}')" && \
echo "--- Danh sách một số gói pip quan trọng: ---" && \
pip list | grep -E 'gradio|torch|faiss|unsloth|sentence-transformers|transformers|numpy|rank_bm25|huggingface_hub' && \
echo "--- KẾT THÚC KIỂM TRA MÔI TRƯỜNG ---"
# Bước 8: Sao chép toàn bộ code ứng dụng của bạn (app.py, retrieval.py, v.v.)
# và các thư mục con (data/, models/ - nếu bạn tải model lên trực tiếp)
# vào thư mục /app bên trong container.
# Hãy tạo file .dockerignore để loại bỏ các file không cần thiết (ví dụ: .git, __pycache__, .venv)
COPY . .
# Bước 9: (Tùy chọn) Thiết lập các biến môi trường mà ứng dụng của bạn có thể cần
# Ví dụ:
# ENV MY_VARIABLE="my_value"
# ENV GRADIO_SERVER_NAME="0.0.0.0" # Thường Gradio tự xử lý
# ENV GRADIO_SERVER_PORT="7860" # Thường Gradio tự xử lý
# Bước 10: Thiết lập lệnh mặc định để chạy ứng dụng của bạn
# Điều này giả định rằng app.py của bạn khởi chạy server Gradio.
CMD ["conda", "run", "-n", "myapp-env", "python", "app.py"]