收起左侧

ARM设备Docker部署 OpenCode 白嫖token

0
回复
35
查看
[ 复制链接 ]

2

主题

5

回帖

0

牛值

江湖小虾


适配设备: ARM64 (我的是 飞牛NAS 某尚未官方适配的某RK3566 )


前言

前一阵,OpenCode平台小米的mimo模型免费,白嫖了好一阵(4月2日结束)。想着利用飞牛部署下,以后直接打开浏览器就能用,于是有了本文。

本文针对ARM架构做Docker容器化部署专项优化,通过本地构建Docker镜像的方式,基于QEMU跨架构模拟运行(ARM设备运行OpenCode的唯一可行方案),彻底修复官方Docker镜像工具缺失、易崩溃、配置丢失等问题。

全程在NAS本地完成Docker镜像构建与容器启动,采用Debian基础镜像搭建运行环境,是飞牛ARM NAS上运行OpenCode最稳定的Docker容器化方案


一、对比其他ARM Docker部署

  1. OpenCode官方仅提供linux/amd64版本的Docker镜像/二进制文件,无任何原生ARM64版本
  2. ARM 运行OpenCode必须依赖Docker的QEMU跨架构模拟,无例外
  3. 本方案与官方Docker镜像均为模拟运行,核心差异是对Docker镜像做了工具链、稳定性、数据持久化的深度优化
  4. 不存在「原生ARM运行、无QEMU模拟」的方案,所有表述均以Docker实际运行机制为准

二、本方案 VS 官方Docker镜像

对比项 官方Docker镜像 本方案
运行模式 QEMU模拟amd64,极简镜像 QEMU模拟amd64,Debian基础镜像优化
系统工具 无git/curl/bash,无法扩展操作 预装完整工具链,支持Docker容器内命令执行
设备兼容 易闪退、内置工具下载失败 完美适配飞牛全系列ARM NAS,Docker运行更稳定
网络容错 无重试机制,镜像构建易失败 安装命令内置网络重试,Docker镜像构建成功率大幅提升
数据持久化 无规范挂载,容器重建配置丢失 自定义路径持久化挂载,Docker容器重建不丢任何数据
易用性 仅基础运行能力,无Web服务配置 开箱配置Web服务,Docker容器启动即能用

三、前置准备

  1. 飞牛NAS已开启SSH远程登录、Docker服务(飞牛后台可直接开启)
  2. 确保NAS可正常访问外网,用于拉取Docker基础镜像、安装OpenCode相关依赖
  3. Docker已默认启用QEMU跨架构模拟(飞牛NAS系统自带Docker默认开启,无需额外配置)

四、Docker容器化部署步骤(纯安装版 无图形界面 复制即用)

重要路径提示

/你的存储路径/ 为NAS自定义存储目录,请自行替换为实际路径(常用:/vol1/1000/docker/opencode

全程保持路径统一,不要随意修改,避免Docker容器挂载路径出错

1. 创建Docker部署专属目录



`bash
# 请先替换下方/你的存储路径/为你的NAS实际存储路径
mkdir -p /你的存储路径/opencode/{config,data,workspace}
# 进入部署目录,后续所有Docker操作均在此目录执行
cd /你的存储路径/opencode

2. 编写Dockerfile(构建专属Docker镜像)

nano Dockerfile

粘贴以下内容(默认官方源,优先考虑搞定网络环境问题,实在不行阿里源作为国内网络备用):

FROM debian:bookworm-slim

# 国内网络卡顿/构建超时,可取消注释启用阿里源,默认使用官方源
# RUN echo "deb [url]https://mirrors.aliyun.com/debian/[/url] bookworm main contrib non-free" > /etc/apt/sources.list \
#     && echo "deb [url]https://mirrors.aliyun.com/debian/[/url] bookworm-updates main contrib non-free" >> /etc/apt/sources.list \
#     && echo "deb [url]https://mirrors.aliyun.com/debian-security[/url] bookworm-security main contrib non-free" >> /etc/apt/sources.list

# 安装基础依赖,为Docker镜像补充完整工具链
RUN apt-get update && apt-get install -y \
    ca-certificates curl git bash openssh-client \
    && rm -rf /var/lib/apt/lists/*

# 安装OpenCode,添加网络重试机制,防止Docker构建时网络波动失败
RUN curl -fsSL --retry 3 --retry-delay 5 [url]https://opencode.ai/install[/url] | bash

# 配置全局软链接,让Docker容器内任意目录可直接调用opencode命令
RUN ln -s /root/.opencode/bin/opencode /usr/local/bin/opencode

# 设定Docker容器默认工作目录
WORKDIR /workspace
# 设定Docker容器入口命令
ENTRYPOINT ["opencode"]

保存退出:Ctrl+O 回车确认 → Ctrl+X 退出

3. 编写docker-compose.yml(Docker容器启动配置)

nano docker-compose.yml

粘贴以下内容(务必替换/你的存储路径/为NAS实际路径,已修复所有命令错误):

services:
  opencode:
    # 基于当前目录的Dockerfile构建本地Docker镜像
    build: .
    # 自定义Docker容器名称,便于后续管理
    container_name: opencode
    # 配置Docker容器重启策略,异常/开机自动重启
    restart: unless-stopped
    # 已修复:补全opencode命令,彻底避免容器启动报command not found
    command: ["opencode", "web", "--hostname", "0.0.0.0", "--port", "3000"]
    # Docker端口映射:NAS宿主机3004端口 → 容器3000端口
    ports:
      - "3004:3000"
    # 数据持久化挂载:请将/你的存储路径/替换为NAS实际路径
    volumes:
      - /你的存储路径/opencode/config:/root/.config/opencode
      - /你的存储路径/opencode/data:/root/.local/share/opencode
      - /你的存储路径/opencode/workspace:/workspace
    # 临时目录优化,减少Docker容器对NAS磁盘的IO占用
    tmpfs:
      - /tmp:size=100M
    # 配置Docker自定义网桥,实现容器网络隔离
    networks:
      - opencode_net

# 定义Docker自定义网络
networks:
  opencode_net:
    driver: bridge

保存退出:Ctrl+O 回车确认 → Ctrl+X 退出

4. 构建Docker镜像并启动容器

# 无缓存构建本地Docker镜像,避免历史缓存导致的兼容问题
docker compose build --no-cache
# 后台启动Docker容器,启动后可脱离SSH终端运行
docker compose up -d

构建时长取决于NAS性能与网络速度,全程无报错即表示Docker镜像构建成功


五、Docker部署验证(三步确认运行正常)

1. 检查OpenCode Docker容器运行状态

# 查看容器是否处于Up运行状态
docker ps | grep opencode

输出结果中若包含 opencode 且状态为 Up,表示容器启动成功

2. 验证容器内OpenCode与工具链安装情况

# 验证OpenCode版本
docker exec opencode opencode --version
# 验证预装工具(以git为例)
docker exec opencode git --version

输出版本号即表示容器内程序安装正常

3. 访问OpenCode Web界面

打开浏览器,输入以下地址即可访问(替换为你的NAS内网IP):

http://你的NAS内网IP:3004

例:NAS内网IP为192.168.1.100,访问地址为 [url]http://192.168.1.100:3004[/url]


六、免费模型推荐

1. Qwen 3.6 Plus Preview(刚刚上线OpenRouter)

项目 内容
平台 OpenRouter
模型 ID qwen/qwen3.6-plus-preview:free
出品方 阿里通义千问
亮点 100万上下文、混合注意力架构、强推理能力
限制 预览版,收集数据用于模型改进,无需**

2. MiMo V2 Pro Free(4月2日结束)

项目 内容
平台 OpenCode Zen(OpenCode 自带,不需要额外配置)
模型 ID mimo-v2-pro-free
出品方 小米
亮点 代码能力对标 Claude Sonnet 4.6、1万亿参数(激活420亿)、KV Cache显存降低6倍
限制 限时免费到4月2日

3. MiniMax M2.5 Free

项目 内容
平台 OpenCode Zen(默认免费模型)
模型 ID minimax-m2.5-free
出品方 MiniMax
亮点 原生Agent生产级模型、编程能力提升、支持工具调用与搜索
限制


收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则