File size: 1,544 Bytes
7bfdb1c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
FROM python:3.11-slim

ARG BESZEL_VERSION=0.18.7

ENV DEBIAN_FRONTEND=noninteractive \
    PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1

RUN useradd -m -u 1000 user && \
    apt-get update && \
    apt-get install -y --no-install-recommends \
        bash \
        ca-certificates \
        curl \
        git \
        git-lfs \
        tini && \
    rm -rf /var/lib/apt/lists/* && \
    mkdir -p /data/workspace /data/beszel-agent && \
    chown -R user:user /data /home/user

USER user

ENV HOME=/home/user \
    PATH=/home/user/.local/bin:$PATH \
    HF_HOME=/data/.huggingface \
    JUPYTER_ROOT_DIR=/data/workspace \
    BESZEL_DATA_DIR=/data/beszel-agent \
    BESZEL_LISTEN=45876 \
    DISABLE_SSH=true \
    DOCKER_HOST="" \
    SKIP_SYSTEMD=true \
    SKIP_GPU=true

WORKDIR $HOME/app

COPY --chown=user requirements.txt ./requirements.txt

RUN python -m pip install --user --no-cache-dir --upgrade pip && \
    python -m pip install --user --no-cache-dir -r requirements.txt

RUN mkdir -p "$HOME/.local/bin" && \
    curl -fsSL \
      "https://github.com/henrygd/beszel/releases/download/v${BESZEL_VERSION}/beszel-agent_Linux_amd64.tar.gz" | \
      tar -xz -C /tmp beszel-agent && \
    install -m 0755 /tmp/beszel-agent "$HOME/.local/bin/beszel-agent" && \
    rm -f /tmp/beszel-agent

COPY --chown=user jupyter_server_config.py ./jupyter_server_config.py
COPY --chown=user start-services.sh ./start-services.sh

RUN chmod +x ./start-services.sh

EXPOSE 7860

ENTRYPOINT ["/usr/bin/tini", "--"]
CMD ["./start-services.sh"]