Spaces:
Sleeping
Sleeping
File size: 5,136 Bytes
819ff17 81989c9 ce17c2d 81989c9 00692df 819ff17 00692df 819ff17 00692df 819ff17 00692df 819ff17 00692df 2940877 00692df 2940877 00692df 81989c9 00692df 819ff17 00692df 7f1fac3 00692df 7f1fac3 00692df 8b72ed1 00692df 819ff17 00692df 7f1fac3 00692df 0674e7e 00692df 138b2e5 00692df 819ff17 7f1fac3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | FROM nvidia/cuda:11.3.1-base-ubuntu20.04
ENV DEBIAN_FRONTEND=noninteractive \
TZ=Asia/Shanghai \
LANG=C.UTF-8 \
LC_ALL=C.UTF-8 \
PYTHONUNBUFFERED=1
# =====================================================
# Base system dependencies
# =====================================================
RUN rm -f /etc/apt/sources.list.d/*.list && \
apt-get update && apt-get install -y \
curl \
ca-certificates \
sudo \
git \
git-lfs \
zip \
unzip \
wget \
nginx \
vim \
jq \
net-tools \
lsof \
telnet \
htop \
bzip2 \
build-essential \
software-properties-common \
python3 \
python3-pip \
libx11-6 \
libsndfile-dev \
&& rm -rf /var/lib/apt/lists/*
# =====================================================
# OpenVSCode Server
# =====================================================
ARG BUILD_DATE
ARG VERSION
ARG CODE_RELEASE
RUN \
echo "**** install openvscode-server runtime dependencies ****" && \
apt-get update && \
apt-get install -y \
libatomic1 \
nano \
netcat && \
echo "**** install openvscode-server ****" && \
if [ -z ${CODE_RELEASE+x} ]; then \
CODE_RELEASE=$(curl -sX GET "https://api.github.com/repos/gitpod-io/openvscode-server/releases/latest" \
| awk '/tag_name/{print $4;exit}' FS='[""]' \
| sed 's|^openvscode-server-v||'); \
fi && \
mkdir -p /app/openvscode-server && \
curl -o /tmp/openvscode-server.tar.gz -L \
"https://github.com/gitpod-io/openvscode-server/releases/download/openvscode-server-v${CODE_RELEASE}/openvscode-server-v${CODE_RELEASE}-linux-x64.tar.gz" && \
tar xf /tmp/openvscode-server.tar.gz \
-C /app/openvscode-server/ \
--strip-components=1 && \
apt-get clean && \
rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*
# =====================================================
# Optional nvtop
# =====================================================
RUN add-apt-repository ppa:flexiondotorg/nvtop && \
apt-get update && \
apt-get install -y --no-install-recommends nvtop
# =====================================================
# Node.js + tools
# =====================================================
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash - && \
apt-get install -y nodejs && \
npm install -g \
configurable-http-proxy \
tsx \
tslab \
http-server \
miniflare@2
# =====================================================
# User setup
# =====================================================
WORKDIR /app
RUN adduser --disabled-password --gecos '' --shell /bin/bash user && \
chown -R user:user /app
RUN echo "user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-user
USER user
ENV HOME=/home/user
RUN mkdir -p $HOME/.cache $HOME/.config && \
chmod -R 777 $HOME
# =====================================================
# Miniconda
# =====================================================
ENV CONDA_AUTO_UPDATE_CONDA=false \
PATH=$HOME/miniconda/bin:$PATH \
PYTHONPATH=$HOME/app
RUN curl -sLo ~/miniconda.sh \
https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-Linux-x86_64.sh && \
chmod +x ~/miniconda.sh && \
~/miniconda.sh -b -p ~/miniconda && \
rm ~/miniconda.sh && \
conda clean -ya
WORKDIR $HOME/app
# =====================================================
# ROOT SECTION
# =====================================================
USER root
COPY packages.txt /root/packages.txt
RUN apt-get update && \
xargs -r -a /root/packages.txt apt-get install -y --no-install-recommends && \
rm -rf /var/lib/apt/lists/*
COPY on_startup.sh /root/on_startup.sh
RUN bash /root/on_startup.sh || true
# =====================================================
# USER SECTION
# =====================================================
USER user
# =====================================================
# Python dependencies
# =====================================================
COPY requirements.txt $HOME/app/
RUN pip install --no-cache-dir --upgrade -r requirements.txt
# =====================================================
# AI AGENT LAYER
# =====================================================
COPY --chown=user app/agent $HOME/app/agent
# =====================================================
# FULL APPLICATION SOURCE
# =====================================================
COPY --chown=user . $HOME/app
WORKDIR $HOME/app
# =====================================================
# Playwright
# =====================================================
RUN pip install playwright && \
playwright install --with-deps || true
# =====================================================
# Permissions
# =====================================================
RUN chmod +x start_server.sh || true
# =====================================================
# Runtime ENV
# =====================================================
ENV GRADIO_ALLOW_FLAGGING=never \
GRADIO_NUM_PORTS=1 \
GRADIO_SERVER_NAME=0.0.0.0 \
GRADIO_THEME=huggingface \
SYSTEM=spaces \
SHELL=/bin/bash
EXPOSE 7860 3000
CMD ["bash", "./start_server.sh"] |