PharmAI / Dockerfile
Hattie's picture
fix: use Posit binary repo for faster R package install
8686ea9
Raw
History Blame Contribute Delete
3.48 kB
# ============================================================
# PharmAI HuggingFace Docker Space
# R + Python + Node.js ํ†ตํ•ฉ ํ™˜๊ฒฝ
# ============================================================
FROM rocker/r-ver:4.4.0
# โ”€โ”€ ์‹œ์Šคํ…œ ํŒจํ‚ค์ง€ ์„ค์น˜ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
RUN apt-get update && apt-get install -y --no-install-recommends \
# Python
python3.10 \
python3-pip \
python3-dev \
# Java (rcdk ํŒจํ‚ค์ง€ ์˜์กด์„ฑ)
default-jdk \
# R ํŒจํ‚ค์ง€ ์ปดํŒŒ์ผ ์˜์กด์„ฑ
libcurl4-openssl-dev \
libssl-dev \
libxml2-dev \
libgfortran5 \
libopenblas-dev \
liblapack-dev \
build-essential \
# ๊ธฐํƒ€
curl \
git \
ca-certificates \
gnupg \
&& rm -rf /var/lib/apt/lists/*
# Node.js 20 ์„ค์น˜ (apt ๊ธฐ๋ณธ ๋ฒ„์ „์€ ๋„ˆ๋ฌด ๋‚ฎ์Œ, Vite ์š”๊ตฌ์‚ฌํ•ญ: Node 14.18+)
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
&& apt-get install -y nodejs \
&& rm -rf /var/lib/apt/lists/*
# Java ํ™˜๊ฒฝ ์„ค์ • (rcdk์šฉ)
RUN R CMD javareconf
# โ”€โ”€ R ํŒจํ‚ค์ง€ ์„ค์น˜ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
# Posit Package Manager (PPM) - Ubuntu 22.04(Jammy) ๋ฐ”์ด๋„ˆ๋ฆฌ ์ œ๊ณต
# ์†Œ์Šค ์ปดํŒŒ์ผ ์—†์ด ์„ค์น˜๋˜์–ด ๋นŒ๋“œ ์‹œ๊ฐ„ ๋Œ€ํญ ๋‹จ์ถ•
ENV RENV_PPM_URL=https://packagemanager.posit.co/cran/__linux__/jammy/latest
RUN R -e "options(repos = c(PPM = Sys.getenv('RENV_PPM_URL'))); \
install.packages(c('jsonlite', 'readxl', 'dplyr', 'tidyr', 'ggplot2', \
'RColorBrewer', 'gridExtra', 'units', 'utf8', 'progress', \
'rxode2', 'ncappc', 'rcdk'), dependencies=TRUE)"
# โ”€โ”€ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ ์„ค์ • โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
WORKDIR /app
# โ”€โ”€ Python ํŒจํ‚ค์ง€ ์„ค์น˜ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
COPY backend/requirements.txt backend/requirements.txt
RUN pip3 install --no-cache-dir -r backend/requirements.txt
# ์ถ”๊ฐ€: uvicorn, aiofiles, huggingface_hub (๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ์šฉ)
RUN pip3 install --no-cache-dir "uvicorn[standard]" aiofiles huggingface_hub
# โ”€โ”€ ํ”„๋ก ํŠธ์—”๋“œ ๋นŒ๋“œ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
COPY frontend/package.json frontend/package-lock.json* frontend/pnpm-lock.yaml* ./frontend/
RUN cd frontend && npm install --legacy-peer-deps
COPY frontend/ frontend/
RUN cd frontend && npm run build
# โ”€โ”€ ์ „์ฒด ์†Œ์Šค ๋ณต์‚ฌ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
COPY . .
# โ”€โ”€ ๊ถŒํ•œ ์„ค์ • โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
RUN chmod +x startup.sh && \
mkdir -p pbpk_engine/results && \
chmod -R 777 pbpk_engine/results
# โ”€โ”€ ํฌํŠธ ๋…ธ์ถœ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
EXPOSE 7860
# โ”€โ”€ ์‹œ์ž‘ ๋ช…๋ น โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
CMD ["./startup.sh"]