jamesw853 commited on
Commit
210f81c
·
verified ·
1 Parent(s): f9601dd

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +13 -12
Dockerfile CHANGED
@@ -1,44 +1,45 @@
1
- # 选择一个稳定的基础镜像
2
  FROM ubuntu:22.04
3
 
4
- # 设置环境变量,避免安装过程中的交互式提示
5
  ENV DEBIAN_FRONTEND=noninteractive
6
  ENV OPENCODE_DATA_DIR=/data
7
 
8
- # 1. 安装系统依赖
9
  RUN apt-get update && apt-get install -y --no-install-recommends \
10
  curl \
11
  ca-certificates \
12
  git \
13
  openssh-client \
14
  sudo \
 
 
15
  && rm -rf /var/lib/apt/lists/*
16
 
17
- # 2. 创建非root用户 (UID 1000 是 Hugging Face Space 的默认用户)
18
  RUN useradd -m -u 1000 -s /bin/bash user && \
19
  echo "user ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/user && \
20
  chmod 0440 /etc/sudoers.d/user
21
 
22
- # 3. 创建数据持久化目录并设置权限 (以 root 身份执行,避免权限问题)
23
  RUN mkdir -p /data && chown -R user:user /data
24
 
25
- # 切换到非root用户
26
  USER user
27
  WORKDIR /home/user
28
 
29
- # 4. 为git操作预先配置SSH known_hosts
30
  RUN mkdir -p /home/user/.ssh && \
31
  ssh-keyscan -T 5 github.com 2>/dev/null >> /home/user/.ssh/known_hosts || true
32
 
33
- # 5. 安装 OpenCode (直接从 GitHub 官方仓库)
34
  RUN curl --retry 3 --retry-delay 2 --max-time 60 -fsSL \
35
  https://raw.githubusercontent.com/opencode-ai/opencode/refs/heads/main/install | bash
36
 
37
- # 将 OpenCode 可执行文件所在目录加入到 PATH
38
  ENV PATH="/home/user/.opencode/bin:${PATH}"
39
 
40
- # 设置工作目录
 
 
 
41
  WORKDIR /workspace
42
 
43
- # 6. 启动命令:以 Web 服务模式运行,监听 7860 端口
44
- CMD ["opencode", "web", "--hostname", "0.0.0.0", "--port", "7860"]
 
 
1
  FROM ubuntu:22.04
2
 
 
3
  ENV DEBIAN_FRONTEND=noninteractive
4
  ENV OPENCODE_DATA_DIR=/data
5
 
6
+ # 安装系统依赖 + Python3 和 pip
7
  RUN apt-get update && apt-get install -y --no-install-recommends \
8
  curl \
9
  ca-certificates \
10
  git \
11
  openssh-client \
12
  sudo \
13
+ python3 \
14
+ python3-pip \
15
  && rm -rf /var/lib/apt/lists/*
16
 
17
+ # 创建非 root 用户
18
  RUN useradd -m -u 1000 -s /bin/bash user && \
19
  echo "user ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/user && \
20
  chmod 0440 /etc/sudoers.d/user
21
 
22
+ # 创建数据目录并赋予权限
23
  RUN mkdir -p /data && chown -R user:user /data
24
 
 
25
  USER user
26
  WORKDIR /home/user
27
 
28
+ # 配置 SSH known_hosts
29
  RUN mkdir -p /home/user/.ssh && \
30
  ssh-keyscan -T 5 github.com 2>/dev/null >> /home/user/.ssh/known_hosts || true
31
 
32
+ # 安装 OpenCode
33
  RUN curl --retry 3 --retry-delay 2 --max-time 60 -fsSL \
34
  https://raw.githubusercontent.com/opencode-ai/opencode/refs/heads/main/install | bash
35
 
 
36
  ENV PATH="/home/user/.opencode/bin:${PATH}"
37
 
38
+ # 复制 Web 服务代码
39
+ COPY --chown=user requirements.txt app.py /home/user/
40
+ RUN pip3 install --no-cache-dir -r requirements.txt
41
+
42
  WORKDIR /workspace
43
 
44
+ # 启动 FastAPI 服务监听 7860 端口
45
+ CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]