aicopy / Dockerfile
parkkyujin's picture
Update Dockerfile
19ea845 verified
FROM python:3.9-slim
# ๋น„ root ์‚ฌ์šฉ์ž ์ƒ์„ฑ ๋ฐ ๊ถŒํ•œ ์„ค์ •
RUN useradd -m -u 1000 streamlit
WORKDIR /app
RUN apt-get update && apt-get install -y \
build-essential \
curl \
software-properties-common \
git \
&& rm -rf /var/lib/apt/lists/*
# 1. requirements.txt ๋ณต์‚ฌ (์ด ํŒŒ์ผ์—๋Š” numpy ๊ด€๋ จ ๋ผ์ธ์ด ์—†์Œ)
COPY requirements.txt ./
# 2. requirements.txt์— ๋ช…์‹œ๋œ ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜
RUN pip3 install --no-cache-dir -r requirements.txt
# 3. Streamlit ์„ค์ • ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ ๋ฐ ๊ถŒํ•œ ์„ค์ •
RUN mkdir -p /home/streamlit/.streamlit && \
chown -R streamlit:streamlit /home/streamlit/.streamlit && \
chown -R streamlit:streamlit /app
# 4. NumPy ๋ฐ Pandas ํ˜ธํ™˜์„ฑ ํ™•์ธ
RUN python -c "import numpy; print('NumPy version:', numpy.__version__)"
RUN python -c "import pandas; print('Pandas version:', pandas.__version__)"
RUN python -c "import numpy._core; print('Successfully imported numpy._core')" || \
python -c "import numpy.core; print('Using numpy.core fallback')"
# ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๋ฐ์ดํ„ฐ ํŒŒ์ผ ๋ณต์‚ฌ
COPY streamlit_app.py ./
COPY ๊ด‘๊ณ ์นดํ”ผ๋ฐ์ดํ„ฐ_๋ธŒ๋žœ๋“œ์ถ”์ถœ์™„๋ฃŒ.xlsx ./
COPY copy_embeddings.pkl ./
# ๋ชจ๋“  ํŒŒ์ผ ๊ถŒํ•œ์„ streamlit ์‚ฌ์šฉ์ž์—๊ฒŒ ํ• ๋‹น
RUN chown -R streamlit:streamlit /app
# ๋น„ root ์‚ฌ์šฉ์ž๋กœ ์ „ํ™˜
USER streamlit
# Streamlit ์„ค์ •
ENV STREAMLIT_CONFIG_DIR=/home/streamlit/.streamlit
ENV HOME=/home/streamlit
EXPOSE 8501
HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
ENTRYPOINT ["streamlit", "run", "streamlit_app.py", "--server.port=8501", "--server.address=0.0.0.0"]