opencode的安装与使用

71   /   0   /   0   /   0   /   发布于 57天前
# 一、使用docker镜像安装,方法如下: 1. **创建Dockerfile文件:** ``` FROM debian:latest ARG USERNAME=code ARG GROUPNAME=code ARG UID=1000 ARG GID=1000 ARG PORT=6666 ARG NODE_FILE ARG GO_FILE COPY ${NODE_FILE} /tmp/ COPY ${GO_FILE} /tmp/ RUN sed -i 's|http://deb.debian.org/debian|http://mirrors.aliyun.com/debian|g' /etc/apt/sources.list.d/debian.sources && \ sed -i 's|http://deb.debian.org/debian-security|http://mirrors.aliyun.com/debian-security|g' /etc/apt/sources.list.d/debian.sources && \ apt-get update && \ apt-get install -y --no-install-recommends wget ca-certificates sudo xz-utils git curl && \ tar -xJf /tmp/${NODE_FILE} -C /usr/local --strip-components=1 && \ rm /tmp/${NODE_FILE} && \ tar -xzf /tmp/${GO_FILE} -C /usr/local --strip-components=1 && \ rm /tmp/${GO_FILE} && \ npm config set registry https://registry.npmmirror.com && \ npm i -g opencode-ai@latest && \ npm rebuild && \ groupadd -g ${GID} ${GROUPNAME} && \ useradd -m -u ${UID} -g ${GID} -G sudo ${USERNAME} && \ echo "${USERNAME} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \ update-ca-certificates && \ apt-get clean && rm -rf /var/lib/apt/lists/* ENV GO111MODULE=auto ENV GOPROXY=https://goproxy.cn,direct USER ${USERNAME} WORKDIR /home/${USERNAME} ``` 2. **创建docker-compose.yml文件:** ``` services: opencode: build: context: . args: USERNAME: ${OC_USER_NAME:-code} GROUPNAME: ${OC_USER_NAME:-code} UID: ${OC_UID:-1000} GID: ${OC_GID:-1000} PORT: ${OC_PORT:-6666} NODE_FILE: ${NODE_FILE} GO_FILE: ${GO_FILE} image: opencode-ai:latest pull_policy: never container_name: opencode-ai restart: unless-stopped ports: - "${OC_PORT:-6666}:${OC_PORT:-6666}" user: "${OC_UID:-1000}:${OC_GID:-1000}" command: ["opencode", "web", "--hostname", "0.0.0.0", "--port", "${OC_PORT:-6666}"] environment: - NODE_ENV=production - OPENCODE_SERVER_USERNAME=${OC_OPENCODE_SERVER_USERNAME:-} - OPENCODE_SERVER_PASSWORD=${OC_OPENCODE_SERVER_PASSWORD:-} volumes: - ./data:/home/${OC_USER_NAME:-code}/data ``` 3. 创建.env ``` # OpenCode AI Docker 环境变量配置 # 用户名 OC_USER_NAME=code # 用户 ID OC_UID=1000 # 用户组 ID OC_GID=1000 # 容器暴露端口 OC_PORT=6666 # Web 服务用户名(可选) OC_OPENCODE_SERVER_USERNAME=code # Web 服务密码(可选) OC_OPENCODE_SERVER_PASSWORD=123456 ``` 4. **把go和node安装包放到相同目录。** # 二、使用说明 在 Docker 容器中运行 OpenCode AI 服务的配置。 ## 环境变量 | 变量 | 默认值 | 说明 | | --------------------------- | ------ | ---------------------- | | OC_USER_NAME | code | 用户名 | | OC_UID | 1000 | 用户 ID | | OC_GID | 1000 | 用户组 ID | | OC_PORT | 6666 | 端口 | | NODE_FILE | - | Node.js 安装包路径 | | GO_FILE | - | Go 安装包路径 | | OC_OPENCODE_SERVER_USERNAME | - | Web 服务用户名(可选) | | OC_OPENCODE_SERVER_PASSWORD | - | Web 服务密码(可选) | ## 快速开始 ### 方式一:使用 run.sh 脚本(推荐) 脚本会自动查找安装包并完成构建、启动: ```bash # 确保目录下有 node-*.tar.xz 和 go*.tar.gz 文件 # 可选:创建 .env 文件配置环境变量 ./run.sh ``` ### 方式二:手动运行 ```bash # 默认构建运行 docker compose up -d # 指定端口 OC_PORT=8080 docker compose up -d # 指定用户 OC_USER_NAME=myuser OC_UID=1001 OC_GID=1001 docker compose up -d # 设置 Web 服务认证 OC_OPENCODE_SERVER_USERNAME=user OC_OPENCODE_SERVER_PASSWORD=pass docker compose up -d # 重新构建(不使用缓存) docker compose build --no-cache && docker compose up -d ``` ## 常用命令 ```bash # 构建镜像 docker compose build # 启动容器 docker compose up -d # 停止容器 docker compose down # 查看日志 docker compose logs -f # 查看运行中的容器 docker ps # 检查容器详情 docker inspect opencode-ai # 清理未使用的镜像 docker image prune -f ``` ## 调试 ```bash # 进入容器 Shell docker exec -it opencode-ai /bin/bash # 查看容器资源使用 docker stats opencode-ai # 查看容器进程 docker top opencode-ai # 检查容器网络配置 docker inspect opencode-ai --format='{{json .NetworkSettings}}' ``` ## 访问服务 启动后访问:`http://localhost:6666` ### .env 配置文件 可在目录下创建 `.env` 文件来持久化配置: ```bash # OpenCode AI Docker 环境变量配置 # 用户名 OC_USER_NAME=code # 用户 ID OC_UID=1000 # 用户组 ID OC_GID=1000 # 容器暴露端口 OC_PORT=6666 # Web 服务用户名(可选) OC_OPENCODE_SERVER_USERNAME= # Web 服务密码(可选) OC_OPENCODE_SERVER_PASSWORD= ``` ## 故障排除 - 容器启动失败:使用 `docker compose logs` 查看日志 - 端口被占用:修改 PORT 环境变量 - 权限问题:检查 UID/GID 是否与主机用户匹配 - 卷挂载问题:检查主机目录权限 # 三、添加本地ollama模型 修改 `~/.config/opencode/opencode.jsonc`文件 ```json { "$schema": "https://opencode.ai/config.json", "provider": { "ollama": { "npm": "@ai-sdk/openai-compatible", "name": "Ollama", "options": { "baseURL": "http://host.docker.internal:11434/v1" }, "models": { "glm-5:cloud": { "name": "glm-5:cloud" }, "qwen3.5:cloud": { "name": "qwen3.5:cloud" } } } } } ``` **注意:**如果你想禁用 schema 验证,可以直接删除这一行,或者使用 `false`。 # 四、添加skills - 添加MiniMax 官方开源 Skills 技能库 ``` git clone https://github.com/MiniMax-AI/skills.git ~/.minimax-skills # mkdir -p ~/.config/opencode/skills # 如果没有要创建 ln -s ~/.minimax-skills/skills/* ~/.config/opencode/skills/ ``` - 添加goframe的skills ``` git clone https://github.com/gogf/skills.git ~/.goframe-skills ln -s ~/.goframe-skills/skills/* ~/.config/opencode/skills/ ``` 记得定期更新技能库 # **[代码的gitee地址](https://gitee.com/wiseai/opencode_web.git)**
  • 共 0 条回复
  • 需要登录 后方可回复, 如果你还没有账号请点击这里注册
梦初醒 茅塞开
  • 不经他人苦,莫劝他人善。
  • 能量足,心态稳,温和坚定可以忍。
  • 辛苦决定不了收入,真正决定收入的只有一个,就是不可替代性。
  • 要么忙于生存,要么赶紧去死!
  • 内心强大到混蛋,比什么都好!
  • 规范流程比制定制度更重要!
  • 立志需要高远,但不能急功近利;
    行动需要迅速,却不可贪图速成。
  • 不要强求人品,要设计高效的机制。
  • 你弱的时候,身边都是鸡零狗碎;
    你强的时候,身边都是风和日丽。
  • 机制比人品更可靠,契约比感情更可靠。
  • 合作不意味着没有冲突,却是控制冲突的最好方法。
  • 误解是人生常态,理解本是稀缺的例外。
  • 成功和不成功之间,只差一次坚持!
  • 祁连卧北雪,大漠壮雄关。
  • 利益顺序,过程公开,机会均等,付出回报。