Spaces:
Runtime error
Runtime error
FROM ubuntu:22.04 AS base | |
ARG PYTHON_VERSION=3.10 | |
ENV DEBIAN_FRONTEND=noninteractive | |
ENV WORKDIR /app/ | |
WORKDIR /opt | |
# install dev tools | |
RUN apt-get update && apt-get install -y \ | |
vim neovim nano \ | |
git git-lfs \ | |
zip unzip \ | |
curl wget make build-essential xz-utils file tree \ | |
sudo \ | |
dnsutils \ | |
tzdata language-pack-ja \ | |
&& apt-get clean \ | |
&& rm -rf /var/lib/apt/lists/* | |
# for Japanese settings | |
# ENV TZ Asia/Tokyo | |
# ENV LANG ja_JP.utf8 | |
# for US settings | |
ENV LANG en_US.UTF-8 | |
ENV LANGUAGE en_US | |
# install Python | |
RUN apt-get update && apt-get -yV upgrade && DEBIAN_FRONTEND=noninteractive apt-get -yV install \ | |
build-essential libssl-dev libffi-dev \ | |
python${PYTHON_VERSION} python${PYTHON_VERSION}-distutils python${PYTHON_VERSION}-dev \ | |
&& ln -s /usr/bin/python${PYTHON_VERSION} /usr/local/bin/python3 \ | |
&& ln -s /usr/bin/python${PYTHON_VERSION} /usr/local/bin/python \ | |
&& apt-get clean \ | |
&& rm -rf /var/lib/apt/lists/* | |
## install pip | |
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \ | |
&& python3 get-pip.py \ | |
&& pip3 --no-cache-dir install --upgrade pip | |
## install Poetry | |
RUN curl -sSL https://install.python-poetry.org | python3 - | |
ENV PATH $PATH:/root/.local/bin | |
RUN poetry config virtualenvs.create true \ | |
&& poetry config virtualenvs.in-project false | |
WORKDIR ${WORKDIR} | |
# install python packages | |
COPY poetry.lock pyproject.toml ./ | |
COPY src ./src | |
RUN poetry install --no-dev | |
FROM base AS dev | |
WORKDIR ${WORKDIR} | |
# install python packages | |
COPY poetry.lock pyproject.toml ./ | |
COPY src ./src | |
RUN poetry install | |
# Hugging Face Hub Settings | |
FROM dev AS hf | |
WORKDIR ${WORKDIR} | |
# REF: https://huggingface.co/docs/hub/spaces-sdks-docker-first-demo#:~:text=As%20discussed%20in,the%20Dockerfile. | |
# Set up a new user named "user" with user ID 1000 | |
RUN useradd -m -u 1000 user | |
# Switch to the "user" user | |
USER user | |
# Set home to the user's home directory | |
ENV HOME=/home/user \ | |
PATH=/home/user/.local/bin:$PATH | |
# Set the working directory to the user's home directory | |
WORKDIR $HOME/app | |
# Copy the current directory contents into the container at $HOME/app setting the owner to the user | |
COPY --chown=user . $HOME/app | |
## install Poetry | |
RUN curl -sSL https://install.python-poetry.org | python3 - | |
ENV PATH $PATH:/root/.local/bin | |
RUN poetry config virtualenvs.create true \ | |
&& poetry config virtualenvs.in-project false | |
RUN poetry install --no-dev | |
RUN poetry install | |
CMD ["poetry", "run", "streamlit", "run", "src/app.py", "--server.port", "7860"] | |