3 changed files with 117 additions and 0 deletions
@ -0,0 +1,42 @@ |
|||||||
|
FROM continuumio/miniconda3:latest |
||||||
|
|
||||||
|
# Install system dependencies |
||||||
|
RUN apt-get update && apt-get install -y \ |
||||||
|
git \ |
||||||
|
curl \ |
||||||
|
sudo \ |
||||||
|
&& rm -rf /var/lib/apt/lists/* |
||||||
|
|
||||||
|
# Create a non-root user with sudo privileges |
||||||
|
ARG USERNAME=llm_engineer |
||||||
|
ARG USER_UID=1000 |
||||||
|
ARG USER_GID=$USER_UID |
||||||
|
|
||||||
|
# Create the user |
||||||
|
RUN groupadd --gid $USER_GID $USERNAME \ |
||||||
|
&& useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \ |
||||||
|
&& echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \ |
||||||
|
&& chmod 0440 /etc/sudoers.d/$USERNAME |
||||||
|
|
||||||
|
# Explicitly set bash as the default shell for the new user |
||||||
|
RUN chsh -s /bin/bash $USERNAME |
||||||
|
|
||||||
|
# Copy and create the custom environment |
||||||
|
COPY environment.yml /tmp/environment.yml |
||||||
|
RUN conda env create -f /tmp/environment.yml |
||||||
|
|
||||||
|
# Set up conda for the new user |
||||||
|
USER $USERNAME |
||||||
|
RUN conda init bash |
||||||
|
|
||||||
|
# Make sure the new user owns their home directory and has access to conda |
||||||
|
USER root |
||||||
|
RUN chown -R $USERNAME:$USERNAME /home/$USERNAME \ |
||||||
|
&& chown -R $USERNAME:$USERNAME /opt/conda/envs/codespace |
||||||
|
|
||||||
|
# Switch back to the non-root user |
||||||
|
USER $USERNAME |
||||||
|
WORKDIR /home/$USERNAME |
||||||
|
|
||||||
|
# Set the default shell to bash |
||||||
|
SHELL ["/bin/bash", "-c"] |
@ -0,0 +1,25 @@ |
|||||||
|
{ |
||||||
|
"name": "Python Environment", |
||||||
|
"build": { |
||||||
|
"dockerfile": "Dockerfile", |
||||||
|
"args": { |
||||||
|
"USERNAME": "llm_engineer" |
||||||
|
} |
||||||
|
}, |
||||||
|
"remoteUser": "llm_engineer", |
||||||
|
"features": {}, |
||||||
|
"customizations": { |
||||||
|
"vscode": { |
||||||
|
"extensions": [ |
||||||
|
"ms-python.python", |
||||||
|
"ms-toolsai.jupyter" |
||||||
|
], |
||||||
|
"settings": { |
||||||
|
"python.defaultInterpreterPath": "/opt/conda/envs/llm_engineer/bin/python", |
||||||
|
"python.linting.enabled": true |
||||||
|
} |
||||||
|
} |
||||||
|
}, |
||||||
|
"forwardPorts": [], |
||||||
|
"postCreateCommand": "conda init bash && echo 'conda activate llm_engineer' >> ~/.bashrc" |
||||||
|
} |
@ -0,0 +1,50 @@ |
|||||||
|
name: llm_engineer |
||||||
|
channels: |
||||||
|
- conda-forge |
||||||
|
- defaults |
||||||
|
dependencies: |
||||||
|
- python=3.11 |
||||||
|
- pip |
||||||
|
- python-dotenv |
||||||
|
- requests |
||||||
|
- numpy |
||||||
|
- pandas |
||||||
|
- scipy |
||||||
|
- pytorch |
||||||
|
- jupyterlab |
||||||
|
- ipywidgets |
||||||
|
- matplotlib |
||||||
|
- scikit-learn |
||||||
|
- chromadb |
||||||
|
- jupyter-dash |
||||||
|
- sentencepiece |
||||||
|
- pyarrow |
||||||
|
- faiss-cpu |
||||||
|
- pip: |
||||||
|
- beautifulsoup4 |
||||||
|
- plotly |
||||||
|
- bitsandbytes |
||||||
|
- transformers |
||||||
|
- sentence-transformers |
||||||
|
- datasets |
||||||
|
- accelerate |
||||||
|
- openai |
||||||
|
- anthropic |
||||||
|
- google-generativeai |
||||||
|
- gradio |
||||||
|
- gensim |
||||||
|
- modal |
||||||
|
- ollama |
||||||
|
- psutil |
||||||
|
- setuptools |
||||||
|
- speedtest-cli |
||||||
|
- langchain |
||||||
|
- langchain-core |
||||||
|
- langchain-text-splitters |
||||||
|
- langchain-openai |
||||||
|
- langchain-chroma |
||||||
|
- langchain-community |
||||||
|
- faiss-cpu |
||||||
|
- feedparser |
||||||
|
- twilio |
||||||
|
- pydub |
Loading…
Reference in new issue