Aqso commited on
Commit
1a96aa3
·
verified ·
1 Parent(s): 54d7597

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +93 -0
Dockerfile ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM ubuntu:22.04
2
+
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"