cfiles commited on
Commit
4c7e7ab
·
verified ·
1 Parent(s): 2661484

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +21 -9
Dockerfile CHANGED
@@ -1,13 +1,11 @@
1
  # 使用一个稳定的Linux发行版作为基础镜像
2
  FROM debian:stable-slim
3
 
4
- # 设置工作目录
5
- WORKDIR /app
6
-
7
- # 安装必要的依赖,如wget和解压工具
8
  RUN apt-get update && apt-get install -y \
9
  wget \
10
  unzip \
 
11
  && rm -rf /var/lib/apt/lists/*
12
 
13
  # 定义code-server的版本
@@ -17,13 +15,27 @@ ARG CODE_SERVER_VERSION=4.91.1
17
  RUN wget https://github.com/coder/code-server/releases/download/v${CODE_SERVER_VERSION}/code-server-${CODE_SERVER_VERSION}-linux-amd64.tar.gz -O code-server.tar.gz && \
18
  tar -xzf code-server.tar.gz && \
19
  mv code-server-${CODE_SERVER_VERSION}-linux-amd64 /usr/lib/code-server && \
20
- rm code-server.tar.gz
 
 
 
 
 
 
21
 
22
- # 将code-server可执行文件链接到PATH
23
- RUN ln -s /usr/lib/code-server/bin/code-server /usr/bin/code-server
 
 
 
 
 
 
 
24
 
25
  # 暴露code-server运行的端口
26
  EXPOSE 7860
27
 
28
- # 启动code-server的命令
29
- CMD ["code-server", "--host", "0.0.0.0", "--port", "7860", "--auth", "none", "--user-data-dir", "/app/data", "/app/project"]
 
 
1
  # 使用一个稳定的Linux发行版作为基础镜像
2
  FROM debian:stable-slim
3
 
4
+ # 安装必要的依赖,包括 sudo
 
 
 
5
  RUN apt-get update && apt-get install -y \
6
  wget \
7
  unzip \
8
+ sudo \
9
  && rm -rf /var/lib/apt/lists/*
10
 
11
  # 定义code-server的版本
 
15
  RUN wget https://github.com/coder/code-server/releases/download/v${CODE_SERVER_VERSION}/code-server-${CODE_SERVER_VERSION}-linux-amd64.tar.gz -O code-server.tar.gz && \
16
  tar -xzf code-server.tar.gz && \
17
  mv code-server-${CODE_SERVER_VERSION}-linux-amd64 /usr/lib/code-server && \
18
+ rm code-server.tar.gz && \
19
+ ln -s /usr/lib/code-server/bin/code-server /usr/bin/code-server
20
+
21
+ # 1. 创建一个名为 'user' 的非root用户,并为其创建主目录
22
+ # 2. 给予该用户免密使用 sudo 的权限,这在VS Code内安装某些工具时会很方便
23
+ RUN useradd -m -s /bin/bash user && \
24
+ echo "user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
25
 
26
+ # 创建工作目录,并所有权交给新创建 'user'
27
+ RUN mkdir -p /app/project && \
28
+ chown -R user:user /app
29
+
30
+ # 切换到这个新的非root用户。之后的所有命令都将以 'user' 的身份运行
31
+ USER user
32
+
33
+ # 设置工作目录
34
+ WORKDIR /app
35
 
36
  # 暴露code-server运行的端口
37
  EXPOSE 7860
38
 
39
+ # 启动code-server
40
+ # 我们明确指定数据目录在 /app/.vscode-data,由于 user 拥有 /app 的所有权,所以他有权在此写入文件
41
+ CMD ["code-server", "--host", "0.0.0.0", "--port", "7860", "--auth", "none", "--user-data-dir", "/app/.vscode-data", "/app/project"]