在Fitten Code中搭建Docker容器化开发环境,虽然步骤看起来不复杂,但实际操作中容易踩到几个隐藏的坑。顺利完成配置的核心思路,是让编辑器能够无缝连接到远程Docker容器,从而实现代码编写、调试与运行的完整闭环,且所有操作都在隔离的容器环境中进行。需要明确的是,Fitten Code本身并不自带Docker构建引擎,因此必须依赖外部Docker守护进程来处理镜像和容器的创建。同时,代码路径映射与端口转发也需准确挂载——否则,很容易遇到保存即崩溃、调试无响应、端口死活无法暴露等一系列令人头疼的问题。

先梳理几个关键判断:整个配置过程可以分解为五个核心步骤,每一步都有关键细节必须留意,遗漏任何一个环节都可能导致前功尽弃。
确认本地Docker服务已正常运行
打开终端,输入命令 docker info。如果返回的信息中能够看到 Server Version 和 Default Runtime 这两个字段,则说明Docker守护进程已经成功启动;如果提示 Cannot connect to the Docker daemon,那很可能是Docker Desktop没有打开,或者在Linux系统上当前用户没有被添加到docker用户组中——这个细节至关重要,如果不解决,后续所有配置都无法生效。
Linux用户还需要额外验证一下:执行 groups | grep docker,如果没有输出结果,就运行 sudo usermod -aG docker $USER && newgrp docker,完成用户组添加后务必重新登录一次系统。
创建适配Fitten Code的开发容器
新建一个工作目录,例如命名为fitten-dev,在其中创建如下内容的 Dockerfile:
FROM docker.fxxk.dedyn.io/node:18.20
ENV TZ=Asia/Shanghai LANG=C.UTF-8
RUN apt update && apt install -y vim curl wget && rm -rf /var/lib/apt/lists/*
COPY . /workspace
WORKDIR /workspace
RUN npm config set registry https://registry.npmmirror.com
EXPOSE 3000 5000 8080
CMD ["tail", "-f", "/dev/null"]
这个镜像的设计值得注意:特意去掉了SSH服务——因为Fitten Code通过SSH连接容器时,权限和密钥问题极易导致连接中断,省去这些麻烦反而能够换来更高的稳定性。另外,CMD指令必须设置为阻塞式命令,例如 tail -f /dev/null,绝对不能写成 npm start 这类前台服务,否则容器启动后会立即退出。
启动容器并正确挂载工作区
在fitten-dev目录中执行镜像构建命令:docker build -t fit-node:dev .,然后通过以下命令启动容器:
docker run -d
--name fit-dev
-v "$(pwd)/src:/workspace/src"
-v "$(pwd)/package.json:/workspace/package.json"
-p 3000:3000 -p 5000:5000
--shm-size=2g
fit-node:dev
这里有一个容易翻车的点:-v挂载时必须要精确到文件级别或子目录,比如 package.json 或 src/,千万不要为了省事直接挂载整个 /workspace——否则Fitten Code会因为容器内路径冲突而导致文件监视功能失效,你可能会排查很久也找不到原因。此外,--shm-size=2g 是必填参数,缺少它会导致Vue或React的热更新在WebSocket连接阶段卡死,页面刷半天也无法加载。
在Fitten Code中连接容器
打开Fitten Code,点击左侧活动栏中的“远程资源管理器”,然后选择“+ 添加新连接”,接着选“Docker Host”,并输入本地的Docker socket路径:
Linux或macOS系统使用 /var/run/docker.sock,Windows WSL2环境下则使用 //./pipe/docker_engine。
连接成功后,在容器列表中找到 fit-dev,右键点击并选择“Attach Visual Studio Code Server”。Fitten Code会自动下载并注入VS Code Server到容器内部,整个过程大约需要40秒。如果超过2分钟仍然卡在“Installing VS Code Server…”的提示上,说明容器内存不足,或者网络策略阻止了GitHub release域名的访问。此时需要手动进入容器执行以下命令:curl -fsSL https://update.code.visualstudio.com/commit:stable/server-linux-x64/stable > /tmp/vscode-server.tar.gz
配置调试参数与端口转发
在Fitten Code中打开已经挂载好的 src 目录,按下 Ctrl+Shift+P,输入“Preferences: Open Settings (JSON)”,添加如下配置段:
"remote.docker.portForwarding": {
"3000": "localhost:3000",
"5000": "localhost:5000"
}
再次按下 Ctrl+Shift+P,输入“Debug: Open launch.json”,选择Node.js环境,并将内容替换为:
{
"version": "0.2.0",
"configurations": [
{
"type": "pwa-node",
"request": "launch",
"name": "Launch via NPM",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "dev"],
"port": 9229,
"address": "0.0.0.0",
"sourceMaps": true,
"skipFiles": ["
}
]
}
保存后,点击右上角的绿色三角形按钮启动调试。断点命中位置会实时显示在Fitten Code编辑器中,变量面板也可以展开查看具体值——这才是容器化开发环境的正确打开方式。
