# 《实战AI大模型》生成AI应用-第10节:搭建云IDE平台并安装Dify
作者:冰河
星球:http://m6z.cn/6aeFbs (opens new window)
博客:https://binghe.gitcode.host (opens new window)
文章汇总:https://binghe.gitcode.host/md/all/all.html (opens new window)
源码获取地址:https://t.zsxq.com/0dhvFs5oR (opens new window)
大家好,我是冰河~~
在当前技术发展的大趋势下,开发环境正加速向云端迁移。云IDE(集成开发环境)平台不仅让开发团队能够在统一的环境中进行实时协作,还能有效减少因环境差异导致的问题,显著提升开发效率。通过浏览器即可访问的特性,使得云IDE能够在各类现代设备上无缝运行。
今天,我们一起深入探索如何在Ubuntu系统上搭建Code-Server云IDE平台,并集成Dify应用。Code-Server实质上是在远程服务器上运行的Microsoft Visual Studio Code,开发者可以直接通过浏览器使用完整的VS Code功能,包括Git集成、代码调试、智能提示等丰富的编辑器特性。
# 一、搭建Docker基础环境
云IDE的稳定运行离不开容器化技术的支持,我们首先需要配置完善的Docker环境。
# 1.1 Docker安装与配置
执行以下命令完成Docker的安装和基础配置:
源码详见:deepseek-case-10/install_docker.sh。
sudo apt update && sudo apt install -y docker.io
sudo systemctl enable --now docker
将当前用户加入 Docker 组
sudo usermod -aG docker $USER
newgrp docker
sudo chmod +x /usr/bin/docker
2
3
4
5
6
# 1.2 配置国内镜像加速
考虑到国内网络环境,我们需要配置Docker镜像加速器来提升拉取镜像的速度:
源码详见:deepseek-case-10/daemon.sh
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors" : ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc",
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://dockerproxy.com",
"https://gst6rzl9.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"http://mirrors.ustc.edu.cn/",
"https://mirrors.tuna.tsinghua.edu.cn/",
"http://mirrors.sohu.com/"
],
"insecure-registries" : [
"registry.docker-cn.com",
"docker.mirrors.ustc.edu.cn"
],
"debug": true,
"experimental": false
}
EOF
sudo systemctl restart docker
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 1.3 Docker Compose安装
Docker Compose是管理多容器应用的重要工具:
源码详见:deepseek-case-10/install_docker_compose.sh
# 下载静态编译的 docker-compose(x86_64 示例)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
2
3
4
5
# 二、部署Code-Server云IDE
Code-Server作为云IDE的核心,我们需要仔细配置以确保其稳定性和可用性。
# 2.1 创建运行目录和配置文件
合理的目录结构有助于后续维护:
#创建目录
sudo mkdir -p code-server
cd code-server/
sudo mkdir -p coder
sudo chown -R 1000:1000 ./coder
sudo chmod -R 777 ./coder
2
3
4
5
6
# 2.2 配置Docker Compose文件
创建docker-compose.yml文件,这是容器化部署的关键:
源码详见:deepseek-case-10/code-server-docker-compose.yml
services:
code-server:
image: codercom/code-server:latest
container_name: code-server
restart: unless-stopped
environment:
- PASSWORD=binghe@qq.com #设置密码
- TZ=Asia/Shanghai # 设置时区
volumes:
- /home/x58/code-server/coder:/home/coder # 配置文件存储,改为自己文件
- /var/run/docker.sock:/var/run/docker.sock # 允许容器内使用Docker(可选)
- /usr/bin/docker:/usr/bin/docker # 挂载宿主机docker客户端
- /usr/bin/docker-compose:/usr/local/bin/docker-compose # 挂载docker-compose
networks:
- code-network
user: 1000:1000 # 以非root用户运行(需确保UID存在)
ports:
- "18080:8080" # 仅允许本地访问
networks:
code-network:
driver: bridge
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
关键配置说明:
- 挂载Docker套接字:使容器内可使用宿主机Docker
- 用户权限设置:增强安全性,避免root权限运行
- 网络隔离:创建独立网络环境
# 2.3 启动Code-Server服务
源码详见:deepseek-case-10/code_server_startup.sh
docker-compose up -d
docker-compose down && docker-compose up -d
2
# 三、配置Nginx反向代理与HTTPS
直接通过IP和端口访问不够安全,我们需要配置Nginx提供HTTPS访问。
# 3.1 安装Nginx
sudo apt install nginx
# 3.2 生成自签名SSL证书
对于内网环境,自签名证书足够使用且配置简单:
源码详见:deepseek-case-10/create_ssl.sh
# 创建SSL证书目录
sudo mkdir -p /etc/nginx/ssl
# 生成私钥和证书(替换192.168.1.111为你的服务器IP)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/nginx/ssl/self.key \
-out /etc/nginx/ssl/self.crt \
-subj "/C=CN/ST=Beijing/L=Beijing/O=LAN/CN=192.168.1.111"
2
3
4
5
6
7
8
随后,生成完整的证书配置文件
源码详见:deepseek-case-10/openssl.config
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = CN
ST = Beijing
L = Beijing
O = LAN
CN = 192.168.1.111 # 你自己的服务器IP
[v3_req]
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
basicConstraints = CA:FALSE
[alt_names]
IP.1 = 192.168.1.111 # 你自己的服务器IP
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 3.3 配置Nginx反向代理
创建配置文件/etc/nginx/sites-available/code-server.conf:
# 查看完整文章
加入冰河技术 (opens new window)知识星球,解锁完整技术文章、小册、视频与完整代码
