xibalami commited on
Commit
3472db0
·
verified ·
1 Parent(s): 2b654dd

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +12 -18
Dockerfile CHANGED
@@ -1,33 +1,27 @@
1
  # 使用基于 Debian 的官方 Node.js 20 slim 镜像
2
  FROM node:20-slim
3
 
4
- # 1. 安装 git
5
- #RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/*
6
-
7
  # 设置工作目录
8
  WORKDIR /app
9
 
10
- # 2. 克隆项目代码到当前目录
11
- #RUN git clone https://github.com/coulsontl/gemini-antiblock.git .
12
- # 复制代码
13
- COPY index.js .
14
- # 3. 安装依赖和 wrangler
15
- RUN npm install wrangler
16
 
 
 
17
 
18
- # --- 以下是解决权限问题的关键修改 (简化版) ---
 
19
 
20
- # 4. 将工作目录 /app 的所有权递归地交给已存在的 'node' 用户
21
- # 基础镜像中 'node' 用户默认属于 'node' 组
22
  RUN chown -R node:node /app
23
 
24
- # 5. 切换到已存在的 'node' 用户
25
  USER node
26
 
27
- # --- 修改结束 ---
28
-
29
- # 暴露端口
30
  EXPOSE 8080
31
 
32
- # 容器启动命令:使用 wrangler dev
33
- CMD ["wrangler", "dev", "index.js", "--ip", "0.0.0.0", "--port", "8080"]
 
1
  # 使用基于 Debian 的官方 Node.js 20 slim 镜像
2
  FROM node:20-slim
3
 
 
 
 
4
  # 设置工作目录
5
  WORKDIR /app
6
 
7
+ # 1. 复制 package.json 和 package-lock.json (如果存在)
8
+ # 这样可以利用 Docker 的缓存机制,只有在依赖变化时才重新安装
9
+ COPY package*.json ./
 
 
 
10
 
11
+ # 2. 安装所有在 package.json 中定义的依赖
12
+ RUN npm install
13
 
14
+ # 3. 复制代码 (index.js 等)
15
+ COPY . .
16
 
17
+ # 4. 将工作目录的所有权交给 'node' 用户 (安全实践)
 
18
  RUN chown -R node:node /app
19
 
20
+ # 5. 切换到 'node' 用户
21
  USER node
22
 
23
+ # 暴露端口 (好习惯)
 
 
24
  EXPOSE 8080
25
 
26
+ # 容器启动命令:使用 npm 的 start 脚本
27
+ CMD ["npm", "start"]