File size: 3,662 Bytes
cf9b4e9
d68716b
120157e
 
7225d57
35d006b
120157e
b969482
120157e
 
 
35d006b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a0a7e6d
35d006b
 
120157e
e8902d1
 
33d82e4
120157e
530ee70
ff0f254
cf9b4e9
ab69560
 
f5e71b0
120157e
 
 
 
 
 
35d006b
120157e
 
 
 
 
 
35d006b
120157e
 
 
35d006b
120157e
35d006b
 
 
 
120157e
 
 
 
 
 
 
 
 
 
 
 
35d006b
 
 
120157e
 
35d006b
120157e
 
d68716b
120157e
 
 
 
 
 
 
 
 
35d006b
120157e
 
d68716b
 
120157e
 
 
 
 
 
35d006b
 
 
 
 
 
 
cd330c5
d1d6c5c
 
cd330c5
35d006b
d68716b
4d805c9
d68716b
895334a
 
 
 
d68716b
 
120157e
 
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
FROM nvidia/cuda:13.0.2-cudnn-devel-ubuntu22.04
SHELL ["/bin/bash", "-exo", "pipefail", "-c"]

ENV DEBIAN_FRONTEND=noninteractive \
  TZ=Europe/Paris



# Remove any third-party apt sources to avoid issues with expiring keys.
# Install some basic utilities
RUN rm -f /etc/apt/sources.list.d/*.list && \
  apt-get update && apt-get install -y --no-install-recommends \
  curl \
  ca-certificates \
  sudo \
  git \
  wget \
  procps \
  git-lfs \
  zip \
  unzip \
  htop \
  vim \
  nano \
  bzip2 \
  libx11-6 \
  build-essential \
  libsndfile-dev \
  openssh-client \
  software-properties-common \
  && rm -rf /var/lib/apt/lists/*

#RUN add-apt-repository ppa:flexiondotorg/nvtop && \
#  apt-get upgrade -y && \
#RUN apt-get install -y --no-install-recommends nvtop

RUN apt-get -y install git-lfs

RUN curl -fsSL https://deb.nodesource.com/setup_22.x  | bash -
RUN apt-get install -y nodejs
#RUN apt-get install -y npm
RUN npm install -g configurable-http-proxy && npm install -g @openai/codex

# Create a working directory
WORKDIR /app

# Create a non-root user and switch to it
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

# All users can use /home/user as their home directory
ENV HOME=/home/user
RUN mkdir $HOME/.cache $HOME/.config \
  && chmod -R 777 $HOME

# Set up the Conda environment
ENV CONDA_AUTO_UPDATE_CONDA=false \
  PATH=$HOME/miniconda/bin:$PATH
RUN curl -sLo ~/miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-py39_4.10.3-Linux-x86_64.sh \
  && chmod +x ~/miniconda.sh \
  && ~/miniconda.sh -b -p ~/miniconda \
  && rm ~/miniconda.sh \
  && conda clean -ya

WORKDIR $HOME/app

#######################################
# Start root user section
#######################################

USER root

# User Debian packages
## Security warning : Potential user code executed as root (build time)
RUN --mount=target=/root/packages.txt,source=packages.txt \
  apt-get update && \
  xargs -r -a /root/packages.txt apt-get install -y --no-install-recommends \
  && rm -rf /var/lib/apt/lists/*

RUN --mount=target=/root/on_startup.sh,source=on_startup.sh,readwrite \
  bash /root/on_startup.sh

RUN mkdir /data && chown user:user /data
WORKDIR /data

#######################################
# End root user section
#######################################

USER user

# Python packages
RUN --mount=target=requirements.txt,source=requirements.txt \
  pip install --no-cache-dir --upgrade -r requirements.txt

# Copy the current directory contents into the container at $HOME/app setting the owner to the user
#COPY --chown=user . $HOME/app
COPY --chown=user . /data

RUN chmod +x start_server.sh

COPY --chown=user login.html /home/user/miniconda/lib/python3.9/site-packages/jupyter_server/templates/login.html

ENV PYTHONUNBUFFERED=1 \
  GRADIO_ALLOW_FLAGGING=never \
  GRADIO_NUM_PORTS=1 \
  GRADIO_SERVER_NAME=0.0.0.0 \
  GRADIO_THEME=huggingface \
  SYSTEM=spaces \
  SHELL=/bin/bash

#RUN git clone --recurse-submodules  https://github.com/itbench-hub/ITBench-SRE-Agent.git
#RUN git clone --recursive https://github.com/itbench-hub/ITBench-Lite.git

RUN git clone https://github.com/itbench-hub/ITBench-SRE-Agent.git

RUN curl -LsSf https://astral.sh/uv/install.sh | /bin/bash
RUN . $HOME/.local/bin/env
WORKDIR /data/ITBench-SRE-Agent
RUN /home/user/.local/bin/uv python pin 3.13
RUN /home/user/.local/bin/uv sync && \
  /home/user/.local/bin/uv pip install ipykernel && \
  /data/ITBench-SRE-Agent/.venv/bin/python -m ipykernel install --user --display-name "SRE"

WORKDIR /data

CMD ["./start_server.sh"]