mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-04-28 19:52:02 +00:00
91 lines
3 KiB
Markdown
91 lines
3 KiB
Markdown
## Customizing the sandbox environment (Docker/Podman)
|
|
|
|
### Currently, the project does not support the use of the BUILD_SANDBOX function after installation through the npm package
|
|
|
|
1. To build a custom sandbox, you need to access the build scripts (scripts/build_sandbox.js) in the source code repository.
|
|
2. These build scripts are not included in the packages released by npm.
|
|
3. The code contains hard-coded path checks that explicitly reject build requests from non-source code environments.
|
|
|
|
If you need extra tools inside the container (e.g., `git`, `python`, `rg`), create a custom Dockerfile, The specific operation is as follows
|
|
|
|
#### 1、Clone qwen code project first, https://github.com/QwenLM/qwen-code.git
|
|
|
|
#### 2、Make sure you perform the following operation in the source code repository directory
|
|
|
|
```bash
|
|
# 1. First, install the dependencies of the project
|
|
npm install
|
|
|
|
# 2. Build the Qwen Code project
|
|
npm run build
|
|
|
|
# 3. Verify that the dist directory has been generated
|
|
ls -la packages/cli/dist/
|
|
|
|
# 4. Create a global link in the CLI package directory
|
|
cd packages/cli
|
|
npm link
|
|
|
|
# 5. Verification link (it should now point to the source code)
|
|
which qwen
|
|
# Expected output: /xxx/xxx/.nvm/versions/node/v24.11.1/bin/qwen
|
|
# Or similar paths, but it should be a symbolic link
|
|
|
|
# 6. For details of the symbolic link, you can see the specific source code path
|
|
ls -la $(dirname $(which qwen))/../lib/node_modules/@qwen-code/qwen-code
|
|
# It should show that this is a symbolic link pointing to your source code directory
|
|
|
|
# 7.Test the version of qwen
|
|
qwen -v
|
|
# npm link will overwrite the global qwen. To avoid being unable to distinguish the same version number, you can uninstall the global CLI first
|
|
|
|
```
|
|
|
|
#### 3、Create your sandbox Dockerfile under the root directory of your own project
|
|
|
|
- Path: `.qwen/sandbox.Dockerfile`
|
|
|
|
- Official mirror image address:https://github.com/QwenLM/qwen-code/pkgs/container/qwen-code
|
|
|
|
```bash
|
|
# Based on the official Qwen sandbox image (It is recommended to explicitly specify the version)
|
|
FROM ghcr.io/qwenlm/qwen-code:sha-570ec43
|
|
# Add your extra tools here
|
|
RUN apt-get update && apt-get install -y \
|
|
git \
|
|
python3 \
|
|
ripgrep
|
|
```
|
|
|
|
#### 4、Create the first sandbox image under the root directory of your project
|
|
|
|
```bash
|
|
QWEN_SANDBOX=docker BUILD_SANDBOX=1 qwen -s
|
|
# Observe whether the sandbox version of the tool you launched is consistent with the version of your custom image. If they are consistent, the startup will be successful
|
|
```
|
|
|
|
This builds a project-specific image based on the default sandbox image.
|
|
|
|
#### Remove npm link
|
|
|
|
- If you want to restore the official CLI of qwen, please remove the npm link
|
|
|
|
```bash
|
|
# Method 1: Unlink globally
|
|
npm unlink -g @qwen-code/qwen-code
|
|
|
|
# Method 2: Remove it in the packages/cli directory
|
|
cd packages/cli
|
|
npm unlink
|
|
|
|
# Verification has been lifted
|
|
which qwen
|
|
# It should display "qwen not found"
|
|
|
|
# Reinstall the global version if necessary
|
|
npm install -g @qwen-code/qwen-code
|
|
|
|
# Verification Recovery
|
|
which qwen
|
|
qwen --version
|
|
```
|