awddwasd commited on
Commit
5db454d
·
verified ·
1 Parent(s): 7ddf331

Upload 3 files

Browse files
Files changed (2) hide show
  1. Dockerfile +1 -1
  2. entrypoint.sh +10 -12
Dockerfile CHANGED
@@ -20,7 +20,7 @@ RUN apt-get update && apt-get install -y \
20
  && rm -rf /var/lib/apt/lists/*
21
 
22
  # 安装 OpenCode
23
- RUN curl -fsSL https://opencode.ai/install | bash
24
 
25
  # 创建目录
26
  RUN mkdir -p /home && chmod 777 /home
 
20
  && rm -rf /var/lib/apt/lists/*
21
 
22
  # 安装 OpenCode
23
+ RUN npm i -g opencode-ai
24
 
25
  # 创建目录
26
  RUN mkdir -p /home && chmod 777 /home
entrypoint.sh CHANGED
@@ -5,8 +5,6 @@ echo "nameserver 8.8.8.8" > /tmp/resolv.conf
5
  echo "nameserver 8.8.4.4" >> /tmp/resolv.conf
6
  cp /tmp/resolv.conf /etc/resolv.conf 2>/dev/null || true
7
 
8
- export PATH="/root/.local/bin:$PATH"
9
-
10
  # 日志级别配置(默认 warning,可选 debug/info/warning)
11
  LOG_LEVEL="${LOG_LEVEL:-warning}"
12
 
@@ -44,13 +42,15 @@ log() {
44
  ;;
45
  esac
46
 
47
- # 额外过滤:只显示重要日志到控制台
48
- local is_important=false
49
- [ "$level" = "error" ] && is_important=true
50
- [ "$level" = "warning" ] && is_important=true
 
 
51
 
52
  TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
53
- if [ "$is_important" = true ]; then
54
  echo "[$TIMESTAMP] [$level] $message" | tee -a "$LOG_DIR/entrypoint.log"
55
  else
56
  echo "[$TIMESTAMP] $message" >> "$LOG_DIR/entrypoint.log"
@@ -59,11 +59,8 @@ log() {
59
 
60
  OPENCODE_LOG_FILE="${LOG_DIR}/opencode.log"
61
 
62
- # 设置 OpenCode 路径
63
- OP_PATH=$(find / -name opencode -type f -printf '%h' -quit 2>/dev/null)
64
- if [ -n "$OP_PATH" ]; then
65
- export PATH="$OP_PATH:$PATH"
66
- fi
67
 
68
  # ============================================
69
  # 启动 OpenCode(带 RAM 监控)
@@ -73,6 +70,7 @@ RAM_CHECK_INTERVAL=30
73
 
74
  start_opencode() {
75
  log info "=== 启动 OpenCode ==="
 
76
  export OPENCODE_SERVER_USERNAME=${OPENCODE_SERVER_USERNAME}
77
  export OPENCODE_SERVER_PASSWORD=${OPENCODE_SERVER_PASSWORD}
78
  opencode serve --port 7860 --hostname 0.0.0.0 > "$OPENCODE_LOG_FILE" 2>&1 &
 
5
  echo "nameserver 8.8.4.4" >> /tmp/resolv.conf
6
  cp /tmp/resolv.conf /etc/resolv.conf 2>/dev/null || true
7
 
 
 
8
  # 日志级别配置(默认 warning,可选 debug/info/warning)
9
  LOG_LEVEL="${LOG_LEVEL:-warning}"
10
 
 
42
  ;;
43
  esac
44
 
45
+ # 额外过滤:控制台输出级别
46
+ local show_on_console=false
47
+ [ "$level" = "error" ] && show_on_console=true
48
+ [ "$level" = "warning" ] && show_on_console=true
49
+ # debug 级别也显示到控制台(方便调试)
50
+ [ "$LOG_LEVEL" = "debug" ] && [ "$level" = "debug" ] && show_on_console=true
51
 
52
  TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
53
+ if [ "$show_on_console" = true ]; then
54
  echo "[$TIMESTAMP] [$level] $message" | tee -a "$LOG_DIR/entrypoint.log"
55
  else
56
  echo "[$TIMESTAMP] $message" >> "$LOG_DIR/entrypoint.log"
 
59
 
60
  OPENCODE_LOG_FILE="${LOG_DIR}/opencode.log"
61
 
62
+ # 设置 OpenCode 路径(npm 安装后已在 PATH 中)
63
+ export PATH="/root/.local/bin:/usr/local/bin:/usr/bin:/bin:$PATH"
 
 
 
64
 
65
  # ============================================
66
  # 启动 OpenCode(带 RAM 监控)
 
70
 
71
  start_opencode() {
72
  log info "=== 启动 OpenCode ==="
73
+ log debug "执行命令: opencode serve --port 7860 --hostname 0.0.0.0"
74
  export OPENCODE_SERVER_USERNAME=${OPENCODE_SERVER_USERNAME}
75
  export OPENCODE_SERVER_PASSWORD=${OPENCODE_SERVER_PASSWORD}
76
  opencode serve --port 7860 --hostname 0.0.0.0 > "$OPENCODE_LOG_FILE" 2>&1 &