C++ 开发环境准备
基于容器的开发
docker 环境准备和启动项目
按照下列链接中的步骤准备好 docker 环境:
VSCode中安装 Docker 插件
编写启动容器的相关配置文件:
Dockerfile
、docker-compose.yml
和.devcontainer/devcontainer.json
创建
dockerfiles/Dockerfile
文件,改文件用于构建容器镜像,内容如下dockerfileFROM ubuntu:24.04 ARG INSTALL_LIST="ubuntu-server ca-certificates locales zsh" ARG INSTALL_LIST="$INSTALL_LIST build-essential cmake ninja-build clangd" ARG MIRRORS_URL="mirrors.ustc.edu.cn" ENV DEBIAN_FRONTEND=noninteractive # set -x 选项会使得每个命令在执行前都会被打印出来,报错时会显示是哪个命令出错 RUN set -x && \ sed -i 's/#force_color_prompt=yes/force_color_prompt=yes/g' ${HOME}/.bashrc && \ sed -i -e "s#//.*archive.ubuntu.com#//${MIRRORS_URL}#g" -e "s#//ports.ubuntu.com#//${MIRRORS_URL}#g" /etc/apt/sources.list.d/ubuntu.sources && \ apt-get update && apt-get upgrade -y && \ apt-get install -y --no-install-recommends ${INSTALL_LIST} && \ apt-get autoremove -y && apt-get clean all && rm -rf /var/lib/apt/lists/* && \ localedef -i zh_CN -c -f UTF-8 -A /usr/share/locale/locale.alias zh_CN.UTF-8
创建
docker-compose.yml
文件,改文件用于启动容器,内容如下yamlservices: hello-cpp: build: context: . dockerfile: dockerfiles/Dockerfile image: hello-cpp-dev:latest # 构建后镜像的名称和标签 environment: USER: root volumes: - "~/.ssh:/root/.ssh:ro" # 挂载宿主机的ssh配置文件,方便推拉代码(只读) - "/etc/localtime:/etc/localtime:ro" # 挂载宿主机时间到容器 - .:/root/hello-cpp # 项目代码 working_dir: /root/hello-cpp command: ["sleep", 'infinity']
创建
.devcontainer/docker-compose.json
文件,改文件用于 VSCode 中配置容器启动参数,内容如下json{ "name": "Existing Docker Compose (Extend)", "dockerComposeFile": [ "../docker-compose.yml" ], "service": "hello-cpp", "workspaceFolder": "/root/hello-cpp", "postCreateCommand": "cat /etc/os-release", "customizations": { "vscode": { "extensions": [ "PKief.material-icon-theme", "mhutchie.git-graph", "ms-vscode-remote.remote-containers", "ms-azuretools.vscode-docker", "llvm-vs-code-extensions.vscode-clangd", "twxs.cmake", "josetr.cmake-language-support-vscode", "ms-vscode.cmake-tools" ] } } }
点击VSCode (最)左下角「打开远程窗口」,弹出的命令中,点击「在容器中重新打开 / Reopen in Container」
也可以在命令面板中搜索并执行命令 「Dev Containers: Rebuild Container Without Cache / 开发容器:重新生成无缓存的容器」(特别是修改了
Dockerfile
或docker-compose.yml
时,必须执行此命令)
TIP
- 在 VSCode 中键入
Ctrl+Shift+P
调出命令面板 ,或者在菜单栏中选择查看(View)
->命令面板(Command Palette)
调出命令面板 - 如果构建失败,可以尝试在 Docker Desktop 中删除对应容器(
hello-cpp-ubuntu-dev
)和对应镜像(hello-cpp-ubuntu-dev:latest
)后重试。如果仍然构建失败,请参考 使用 Dev Containers 插件的过程 。
运行 demo
进入容器后,在终端中可以通过下面的命令查看当前环境相关信息:
bash
cat /etc/os-release # 检查当前系统发行版本
uname -m # 查看系统架构
cat /proc/cpuinfo # 查看CPU信息
cat /proc/meminfo # 查看内存信息
扩展开发环境
如果需要扩展开发环境,可以在 Dockerfile
中添加对应的软件包安装命令,然后执行 Dev Containers: Rebuild Container Without Cache
命令重新构建容器。