autotrain-playground / Dockerfile
dsmueller's picture
Update dependencies and Dockerfile configuration
3eea93e
raw
history blame
No virus
1.93 kB
# Use an official Python runtime as a parent image
FROM python:3.11.1
# Set up user and paths
RUN useradd -m -u 1000 user
USER user
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH
# WORKDIR $HOME/app
# COPY --chown=user . $HOME/app
# Set the working directory in the container
WORKDIR $HOME/app
# Copy the current directory contents into the container at /usr/src/app
# COPY . .
COPY --chown=user . $HOME/app
# Install dependencies
# RUN poetry config virtualenvs.create false \
# && poetry install --no-interaction --no-ansi
# Streamlit must be installed separately. Potentially this will cause an issue with dependencies in the future, but it's the only way it works.
# RUN pip3 install streamlit
# Run the container as root
USER root
# Install Rust and Cargo
RUN apt-get update
# RUN apt-get install -y curl build-essential
# RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y && \
# . $HOME/.cargo/env
RUN pip install --upgrade pip
# Install dependencies
RUN pip install -r requirements.txt
# Make a port available to the world outside this container
# The EXPOSE instruction informs Docker that the container listens on the specified network ports at runtime. Your container needs to listen to Streamlit’s (default) port 8501.
EXPOSE 8501
# The HEALTHCHECK instruction tells Docker how to test a container to check that it is still working. Your container needs to listen to Streamlit’s (default) port 8501:
HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
# Set the permissions for the script file
# RUN chmod +x python 3 train_llm.py
# Change permissions of the working directory
# RUN chmod 777 /app # Gives all users read, write, and exec permissions in the app directory.
# Run the command inside your image filesystem.
CMD ["python", "train_llm.py"]
# Execute with:
# docker build -t <image_name> .
# docker run -p 8501:8501 <image_name>