tecno12 commited on
Commit
8a93b9e
·
verified ·
1 Parent(s): 3c2d8fd

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +73 -10
Dockerfile CHANGED
@@ -3,28 +3,91 @@ FROM ubuntu:22.04
3
  ENV DEBIAN_FRONTEND=noninteractive
4
  ENV HOSTNAME=Nobita
5
 
6
- # ---- Base packages (ONE shot, ONE layer) ----
 
 
7
  RUN apt-get update && apt-get install -y --no-install-recommends \
8
  ca-certificates \
9
  curl \
10
  wget \
11
  git \
12
  sudo \
13
- docker.io \
 
 
14
  htop \
15
- btop \
16
  neovim \
17
- lsof \
18
- qemu-system \
19
- cloud-image-utils \
20
  && rm -rf /var/lib/apt/lists/*
21
 
22
- # ---- Install code-server ----
 
 
23
  RUN curl -fsSL https://code-server.dev/install.sh | sh
24
 
25
- # ---- Workspace ----
 
 
26
  WORKDIR /workspace
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
 
28
- EXPOSE 7860
 
 
 
29
 
30
- CMD ["code-server", "--bind-addr", "0.0.0.0:7860", "--auth", "none"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
  ENV HOSTNAME=Nobita
5
 
6
+ # -----------------------------
7
+ # Install Required Packages
8
+ # -----------------------------
9
  RUN apt-get update && apt-get install -y --no-install-recommends \
10
  ca-certificates \
11
  curl \
12
  wget \
13
  git \
14
  sudo \
15
+ qemu-system-x86 \
16
+ cloud-image-utils \
17
+ openssh-client \
18
  htop \
 
19
  neovim \
 
 
 
20
  && rm -rf /var/lib/apt/lists/*
21
 
22
+ # -----------------------------
23
+ # Install code-server
24
+ # -----------------------------
25
  RUN curl -fsSL https://code-server.dev/install.sh | sh
26
 
27
+ # -----------------------------
28
+ # Create VM Directory
29
+ # -----------------------------
30
  WORKDIR /workspace
31
+ RUN mkdir -p /vm/debian13
32
+
33
+ # -----------------------------
34
+ # Download Debian 13 QCOW2
35
+ # -----------------------------
36
+ RUN wget https://cloud.debian.org/images/cloud/trixie/daily/latest/debian-13-generic-amd64-daily.qcow2 \
37
+ -O /vm/debian13/debian13.qcow2
38
+
39
+ # -----------------------------
40
+ # Proper Cloud-Init Config (ROOT + NN WORKING)
41
+ # -----------------------------
42
+ RUN cat <<EOF > /vm/debian13/user-data
43
+ #cloud-config
44
+ ssh_pwauth: true
45
+ disable_root: false
46
+
47
+ chpasswd:
48
+ list: |
49
+ root:root
50
+ nn:nn
51
+ expire: false
52
+
53
+ users:
54
+ - default
55
+ - name: nn
56
+ groups: sudo
57
+ shell: /bin/bash
58
+ sudo: ALL=(ALL) ALL
59
+ EOF
60
+
61
+ RUN cat <<EOF > /vm/debian13/meta-data
62
+ instance-id: debian13
63
+ local-hostname: debian13
64
+ EOF
65
+
66
+ RUN cloud-localds /vm/debian13/seed.iso \
67
+ /vm/debian13/user-data \
68
+ /vm/debian13/meta-data
69
 
70
+ # -----------------------------
71
+ # Expose Ports
72
+ # -----------------------------
73
+ EXPOSE 7860 2222
74
 
75
+ # -----------------------------
76
+ # Smart Startup (Auto RAM + CPU)
77
+ # -----------------------------
78
+ CMD bash -c "\
79
+ TOTAL_RAM=\$(awk '/MemTotal/ {print int(\$2/1024)}' /proc/meminfo); \
80
+ VM_RAM=\$((TOTAL_RAM*70/100)); \
81
+ CPU_CORES=\$(nproc); \
82
+ echo \"Detected RAM: \$TOTAL_RAM MB\"; \
83
+ echo \"Allocating VM RAM: \$VM_RAM MB\"; \
84
+ echo \"Detected CPU Cores: \$CPU_CORES\"; \
85
+ qemu-system-x86_64 \
86
+ -m \$VM_RAM \
87
+ -smp \$CPU_CORES \
88
+ -drive file=/vm/debian13/debian13.qcow2,format=qcow2 \
89
+ -drive file=/vm/debian13/seed.iso,format=raw \
90
+ -net nic \
91
+ -net user,hostfwd=tcp::2222-:22 \
92
+ -nographic & \
93
+ code-server --bind-addr 0.0.0.0:7860 --auth none"