dracoox commited on
Commit
ec136f2
·
verified ·
1 Parent(s): 9a46fa7

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +57 -0
Dockerfile ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM ubuntu:22.04
2
+
3
+ ENV DEBIAN_FRONTEND=noninteractive
4
+ ENV LANG=en_US.UTF-8
5
+ ENV LANGUAGE=en_US:en
6
+ ENV LC_ALL=en_US.UTF-8
7
+
8
+ # Install dependencies (install doas after clean)
9
+ RUN apt update && apt upgrade -y && \
10
+ apt install -y \
11
+ curl wget git gnupg openssh-client \
12
+ neofetch tmate python3 python3-pip \
13
+ ca-certificates software-properties-common \
14
+ build-essential procps xz-utils net-tools \
15
+ make ffmpeg nano vim htop unzip zip \
16
+ iputils-ping tree lsof netcat tmux \
17
+ locales cmake && \
18
+ locale-gen en_US.UTF-8 && \
19
+ apt clean && rm -rf /var/lib/apt/lists/* && \
20
+ apt update && apt install -y doas
21
+
22
+ # Install Node.js 22 and update npm
23
+ RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \
24
+ apt install -y nodejs && npm install -g npm
25
+
26
+ # Install speedtest-cli
27
+ RUN pip3 install speedtest-cli
28
+
29
+ # Create user 'draco' with UID 1000 and no sudo
30
+ RUN useradd -m -s /bin/bash draco && \
31
+ echo "draco:draco" | chpasswd && \
32
+ usermod -u 1000 draco
33
+
34
+ # Configure doas to allow draco no-password access
35
+ RUN echo "permit nopass draco" > /etc/doas.conf
36
+
37
+ # Optional: add alias to make sudo map to doas
38
+ RUN echo "alias sudo='doas'" >> /home/draco/.bashrc
39
+
40
+ # Generate SSH key for draco
41
+ RUN mkdir -p /home/draco/.ssh && \
42
+ ssh-keygen -t rsa -f /home/draco/.ssh/id_rsa -N '' && \
43
+ chown -R draco:draco /home/draco/.ssh
44
+
45
+ # Copy your script and set permissions
46
+ COPY run_tmate.sh /home/draco/run_tmate.sh
47
+ RUN chmod +x /home/draco/run_tmate.sh && chown draco:draco /home/draco/run_tmate.sh
48
+
49
+ # Set user and working directory
50
+ USER draco
51
+ WORKDIR /home/draco
52
+
53
+ # Expose web port
54
+ EXPOSE 7860
55
+
56
+ # Run both tmate script and HTTP server
57
+ CMD bash -c "./run_tmate.sh & python3 -m http.server 7860"