tanlang001 commited on
Commit
18d3f17
·
verified ·
1 Parent(s): 4532c6a

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +61 -0
Dockerfile ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 基础镜像(以 ubuntu 为例,也适用于 debian)
2
+ FROM ubuntu:24.04
3
+
4
+ # 避免交互式提示(tzdata 等)
5
+ ENV DEBIAN_FRONTEND=noninteractive
6
+
7
+ # 1. 安装 sudo(很多基础镜像没有 sudo)
8
+ RUN apt-get update && \
9
+ apt-get install -y sudo unzip lsof python3 python3-pip python3-venv curl git wget nodejs npm xz-utils zip libglu1-mesa && \
10
+ # 清理缓存,减小镜像体积
11
+ apt-get clean && rm -rf /var/lib/apt/lists/*
12
+
13
+ # 2. 创建新用户(这里叫 devuser,你可以改名)
14
+ # -m 创建 home 目录
15
+ # -s 指定 shell(可选,默认 /bin/sh)
16
+ ARG USERNAME=good
17
+ ARG USER_UID=1001
18
+ ARG USER_GID=$USER_UID
19
+
20
+ RUN groupadd --gid ${USER_GID} ${USERNAME} && \
21
+ useradd --uid ${USER_UID} --gid ${USER_GID} -m ${USERNAME} && \
22
+ # 可选:设置密码(调试用,不推荐生产)
23
+ # echo "${USERNAME}:yourpassword" | chpasswd && \
24
+ # 加入 sudo 组
25
+ usermod -aG sudo ${USERNAME}
26
+
27
+ # 3. 给 sudo 组无密码权限(最常用方式)
28
+ # 或者只给这个用户:echo "${USERNAME} ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/${USERNAME}
29
+ RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
30
+ # 确保权限正确(sudoers 文件必须 0440)
31
+ chmod 0440 /etc/sudoers
32
+
33
+
34
+ # 5. 设置工作目录(可选)
35
+ WORKDIR /home/${USERNAME}
36
+
37
+ COPY . .
38
+ RUN chmod +x /home/${USERNAME}/entry.sh
39
+ # 4. 切换到新用户(后续 RUN、CMD、ENTRYPOINT 都用这个用户)
40
+ USER ${USERNAME}
41
+
42
+
43
+
44
+ RUN curl -sSf https://sshx.io/get | sh
45
+
46
+ RUN wget -O vscode-cli.tar.gz "https://code.visualstudio.com/sha/download?build=stable&os=cli-alpine-x64" && \
47
+ tar xf vscode-cli.tar.gz && \
48
+ # 得到一个叫 code 的可执行文件
49
+ chmod +x code && \
50
+ ./code --version && \
51
+ sudo mv code /usr/local/bin/code &&\
52
+ wget -O flutter_code.tar.gz https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.41.0-stable.tar.xz && \
53
+ tar xf flutter_code.tar.gz && \
54
+ echo 'export PATH="$PATH:/home/good/flutter/bin"' >> ~/.bashrc && \
55
+ rm flutter_code.tar.gz && \
56
+ rm vscode-cli.tar.gz
57
+
58
+ EXPOSE 7860
59
+
60
+ #ENTRYPOINT /home/good/entry.sh
61
+ CMD sshx & python3 -m http.server 7860