opencode的安装与使用
# 一、使用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 条回复
- 需要登录 后方可回复, 如果你还没有账号请点击这里注册。
wiseAI
✨ 梦初醒 茅塞开
- 不经他人苦,莫劝他人善。
- 能量足,心态稳,温和坚定可以忍。
- 辛苦决定不了收入,真正决定收入的只有一个,就是不可替代性。
- 要么忙于生存,要么赶紧去死!
- 内心强大到混蛋,比什么都好!
- 规范流程比制定制度更重要!
-
立志需要高远,但不能急功近利;
行动需要迅速,却不可贪图速成。 - 不要强求人品,要设计高效的机制。
-
你弱的时候,身边都是鸡零狗碎;
你强的时候,身边都是风和日丽。 - 机制比人品更可靠,契约比感情更可靠。
- 合作不意味着没有冲突,却是控制冲突的最好方法。
- 误解是人生常态,理解本是稀缺的例外。
- 成功和不成功之间,只差一次坚持!
- 祁连卧北雪,大漠壮雄关。
- 利益顺序,过程公开,机会均等,付出回报。
