coteerratu commited on
Commit
1583df9
·
verified ·
1 Parent(s): 4fb7b9b

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +27 -42
Dockerfile CHANGED
@@ -1,56 +1,41 @@
1
- # 使用 Ubuntu 作为基础镜像
2
  FROM ubuntu:latest
3
 
4
- # 更新包列表并安装必要的软件包
5
- RUN apt-get update && apt-get install -y \
6
- bash \
7
- wget \
8
- ca-certificates \
 
9
  sudo \
10
  curl \
11
- python3 \
12
- python3-venv \
13
- build-essential \
14
  nodejs \
15
  npm \
16
- && apt-get clean \
17
- && rm -rf /var/lib/apt/lists/*
18
-
19
- # 创建虚拟环境
20
- RUN python3 -m venv /opt/venv
21
-
22
- # 激活虚拟环境并安装 setuptools
23
- RUN /opt/venv/bin/pip install --upgrade pip setuptools
24
 
25
- # 更新 npm
26
- RUN /opt/venv/bin/pip install nodeenv
27
- RUN . /opt/venv/bin/activate && nodeenv -p --node=18.20.4
 
 
28
 
29
- # 激活虚拟环境并安装 wetty 及其依赖
30
- RUN . /opt/venv/bin/activate && npm install -g wetty
 
31
 
32
- # 创建 /data 目录并赋予用户 1001 权限
33
- RUN mkdir -p /data && chown -R 1001:1001 /data
 
34
 
35
- # 创建用户 1001 并设置工作目录
36
- RUN useradd -u 1001 -d /data -m -s /bin/bash user1001
37
 
38
- # 允许用户 1001 使用 sudo
39
- RUN usermod -aG sudo user1001
40
 
41
- # 配置 sudo 不需要 tty 并且不需要密码
42
- RUN echo 'Defaults:user1001 !requiretty' >> /etc/sudoers
43
- RUN echo 'user1001 ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
44
-
45
- # 切换到用户 1001 并设置工作目录
46
- USER 1001
47
- WORKDIR /data
48
-
49
- # 暴露端口
50
  EXPOSE 3000
51
 
52
- # 使用 wetty 运行 bash,并修改 PS1 环境变量
53
- CMD ["/opt/venv/bin/wetty", "--base", "/wetty", "--command", "/bin/bash"]
54
-
55
- # 创建 .bashrc 文件并设置 PS1 环境变量
56
- RUN echo 'PS1="online-terminal:\\w\\$ "' > /data/.bashrc
 
1
+ # 使用基础镜像 Ubuntu
2
  FROM ubuntu:latest
3
 
4
+ # 设置环境变量 DEBIAN_FRONTEND=noninteractive 防止安装过程中弹出交互式配置
5
+ ENV DEBIAN_FRONTEND=noninteractive
6
+
7
+ # 安装必要的软件包
8
+ RUN apt-get update && \
9
+ apt-get install -y \
10
  sudo \
11
  curl \
12
+ git \
 
 
13
  nodejs \
14
  npm \
15
+ && rm -rf /var/lib/apt/lists/*
 
 
 
 
 
 
 
16
 
17
+ # 创建 /app 目录并授权给 online-terminal 用户
18
+ RUN mkdir /app && \
19
+ groupadd -r online-terminal && \
20
+ useradd -r -g online-terminal -d /app -s /bin/bash online-terminal && \
21
+ chown -R online-terminal:online-terminal /app
22
 
23
+ # /app 目录中使用 online-terminal 用户运行接下来的命令
24
+ WORKDIR /app
25
+ USER online-terminal
26
 
27
+ # 克隆 Wetty 仓库
28
+ RUN git clone https://github.com/krishnasrinivas/wetty.git . && \
29
+ npm install
30
 
31
+ # 在容器启动时使用特权用户 online-terminal
32
+ USER online-terminal
33
 
34
+ # online-terminal 用户添加到 sudoers 文件并允许其使用 sudo 无需密码
35
+ RUN echo "online-terminal ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
36
 
37
+ # 暴露端口 3000
 
 
 
 
 
 
 
 
38
  EXPOSE 3000
39
 
40
+ # 容器启动时运行 Wetty
41
+ CMD ["npm", "start"]