Spaces:
Paused
Paused
# Sử dụng image Miniconda3 để giữ kích thước nhỏ và hỗ trợ Conda | |
FROM continuumio/miniconda3 | |
# Cập nhật và cài đặt các công cụ cần thiết (tùy chọn, giữ tối thiểu) | |
RUN apt-get update && apt-get install -y --no-install-recommends \ | |
git \ | |
&& rm -rf /var/lib/apt/lists/* | |
# Thiết lập thư mục làm việc | |
WORKDIR /app | |
# Tạo user không phải root | |
RUN useradd -m -u 1000 appuser && \ | |
mkdir -p /app/.cache && \ | |
chown -R appuser:appuser /app | |
# Sao chép file environment.yml và tạo môi trường Conda | |
COPY environment.yml . | |
RUN conda env create -f environment.yml && \ | |
conda clean --all --yes | |
# Kích hoạt môi trường Conda (giả sử môi trường trong environment.yml tên là 'myenv') | |
ENV PATH /opt/conda/envs/graduated2/bin:$PATH | |
RUN echo "conda activate graduated2" >> ~/.bashrc | |
# Cài đặt bổ sung CLIP từ GitHub (nếu không có trong environment.yml) | |
RUN /bin/bash -c "source activate graduated2 && pip install git+https://github.com/openai/CLIP.git" | |
# Sao chép mã nguồn | |
COPY --chown=appuser:appuser . . | |
# Thiết lập biến môi trường để thay đổi thư mục cache | |
ENV XDG_CACHE_HOME=/app/.cache | |
# Chuyển sang user appuser để chạy ứng dụng | |
USER appuser | |
# Mở port 8000 | |
EXPOSE 8000 | |
# Chạy ứng dụng với Uvicorn trong môi trường Conda | |
CMD ["/bin/bash", "-c", "source activate graduated2 && uvicorn app.main:app --host 0.0.0.0 --port 8000"] | |