File size: 2,112 Bytes
18d3f17
 
 
 
 
 
 
 
d6aa9ba
18d3f17
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
970f399
18d3f17
 
 
 
 
 
 
 
 
d6aa9ba
 
18d3f17
 
d6aa9ba
18d3f17
d6aa9ba
0206aaa
 
d6aa9ba
18d3f17
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# 基础镜像(以 ubuntu 为例,也适用于 debian)
FROM ubuntu:24.04

# 避免交互式提示(tzdata 等)
ENV DEBIAN_FRONTEND=noninteractive

# 1. 安装 sudo(很多基础镜像没有 sudo)
RUN apt-get update && \
    apt-get install -y sudo unzip lsof python3 python3-pip python3-venv curl git wget nodejs npm xz-utils zip libglu1-mesa ffmpeg && \
    # 清理缓存,减小镜像体积
    apt-get clean && rm -rf /var/lib/apt/lists/*

# 2. 创建新用户(这里叫 devuser,你可以改名)
#    -m 创建 home 目录
#    -s 指定 shell(可选,默认 /bin/sh)
ARG USERNAME=good
ARG USER_UID=1001
ARG USER_GID=$USER_UID

RUN groupadd --gid ${USER_GID} ${USERNAME} && \
    useradd --uid ${USER_UID} --gid ${USER_GID} -m ${USERNAME} && \
    # 可选:设置密码(调试用,不推荐生产)
    # echo "${USERNAME}:yourpassword" | chpasswd && \
    # 加入 sudo 组
    usermod -aG sudo ${USERNAME}

# 3. 给 sudo 组无密码权限(最常用方式)
#    或者只给这个用户:echo "${USERNAME} ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/${USERNAME}
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \
    # 确保权限正确(sudoers 文件必须 0440)
    chmod 0440 /etc/sudoers


# 5. 设置工作目录(可选)
WORKDIR /home/${USERNAME}

COPY . .

# 4. 切换到新用户(后续 RUN、CMD、ENTRYPOINT 都用这个用户)
USER ${USERNAME}



RUN curl -sSf https://sshx.io/get | sh

RUN wget -O vscode-cli.tar.gz "https://code.visualstudio.com/sha/download?build=stable&os=cli-alpine-x64" && \
tar xf vscode-cli.tar.gz && \
wget -O N_m3u8DL-RE.tar.gz "https://github.com/nilaoda/N_m3u8DL-RE/releases/download/v0.5.1-beta/N_m3u8DL-RE_v0.5.1-beta_linux-x64_20251029.tar.gz" && \
tar xf N_m3u8DL-RE.tar.gz && \
# 得到一个叫 code 的可执行文件
chmod +x code && \
chmod +x N_m3u8DL-RE && \
./code --version && \
sudo mv N_m3u8DL-RE /usr/local/bin/N_m3u8DL-RE &&\
rm N_m3u8DL-RE.tar.gz && \
sudo mv code /usr/local/bin/code && \
rm vscode-cli.tar.gz

EXPOSE 7860

#ENTRYPOINT /home/good/entry.sh
CMD sshx & python3 -m http.server 7860