dracoox commited on
Commit
c4bb806
·
verified ·
1 Parent(s): fd8cce9

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +18 -9
Dockerfile CHANGED
@@ -5,18 +5,19 @@ ENV LANG=en_US.UTF-8
5
  ENV LANGUAGE=en_US:en
6
  ENV LC_ALL=en_US.UTF-8
7
 
8
- # Install dependencies
9
  RUN apt update && apt upgrade -y && \
10
  apt install -y \
11
- sudo 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 && \
18
  locale-gen en_US.UTF-8 && \
19
- apt clean && rm -rf /var/lib/apt/lists/*
 
20
 
21
  # Install Node.js 22 and update npm
22
  RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \
@@ -25,24 +26,32 @@ RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \
25
  # Install speedtest-cli
26
  RUN pip3 install speedtest-cli
27
 
28
- # Create draco user with sudo
29
  RUN useradd -m -s /bin/bash draco && \
30
  echo "draco:draco" | chpasswd && \
31
- usermod -aG sudo draco && \
32
  usermod -u 1000 draco
33
 
34
- # Generate SSH key
 
 
 
 
 
 
35
  RUN mkdir -p /home/draco/.ssh && \
36
  ssh-keygen -t rsa -f /home/draco/.ssh/id_rsa -N '' && \
37
  chown -R draco:draco /home/draco/.ssh
38
 
39
- # Copy script and set permissions
40
  COPY run_tmate.sh /home/draco/run_tmate.sh
41
  RUN chmod +x /home/draco/run_tmate.sh && chown draco:draco /home/draco/run_tmate.sh
42
 
 
43
  USER draco
44
  WORKDIR /home/draco
45
 
 
46
  EXPOSE 7860
47
 
48
- CMD bash -c "./run_tmate.sh & python3 -m http.server 7860"
 
 
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 - && \
 
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"