# 《实战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
1
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
1
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
1
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
1
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
1
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
1
2

# 三、配置Nginx反向代理与HTTPS

直接通过IP和端口访问不够安全,我们需要配置Nginx提供HTTPS访问。

# 3.1 安装Nginx

sudo apt install nginx
1

# 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"
1
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
1
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)知识星球,解锁完整技术文章、小册、视频与完整代码