crop-diag-module / Dockerfile
Sontranwakumo
fix: docker file
c105ba2
# 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"]