基于CLion远程开发
简介
本文介绍基于docker和projector搭建一套c++的开发环境,提升研发效率问题。大多数c++服务是运行在linux平台的,代码也只能在linux上编译,但大部分开发者使用的是macbook或者thinkpad,很少用linux开发。开发环境、编译运行环境两边代码同步影响研发效率。
隔壁的vscode通过remote插件,支持远程开发模式,一定程度上提升了研发效率。
年初Jetbrains开源的projector_install项目,旨在让IDE运行在服务端,然后本地通过网络与其交互。
本文将介绍这个环境的搭建。
环境搭建
有vps或者linux开发机的同学,可以参考dockerfile进行安装。没有vps或
者linux开发机的同学,可以在macbook或者thinkpad上安装一个docker,然后使用下面dockerfile进行安装。
Dockerfile内容如下:
FROM centos:8
# 基本开发环境
RUN dnf install -y gcc-c++ cmake make git sudo; \
dnf clean all; \
rm -rf /var/cache/dnf/*
# python环境
RUN dnf install -y python3 python3-pip python3-pyOpenSSL python3-cryptography \
less libXext libXrender libXtst libXi freetype; \
dnf clean all; \
rm -rf /var/cache/dnf/*
# 创建用户及目录
RUN useradd -b /home -m -s /bin/bash work
WORKDIR /home/work
RUN usermod -a -G wheel work
RUN echo "work:work"|chpasswd
USER work
# 安装projector和conan
## 更新pip
RUN python3 -m pip install -U pip --user; pip3 cache purge;
## 安装projector_install和conan
RUN pip3 install projector-installer conan --user; pip3 cache purge;
## 手工初始化目录,否则启动的时候需要协议确认
RUN mkdir -p .projector/apps .projector/cache .projector/configs
## 安装IDE
RUN .local/bin/projector autoinstall --config-name CLion --ide-name "CLion 2021.2.3" --port 9999; \
rm .projector/cache/*
# 暴露端口号
EXPOSE 9999
ENTRYPOINT [ "/home/work/.local/bin/projector", "run", "CLion" ]
然后执行下面命令进行镜像构建及推送:
docker build -t phantom9999/projector:v1 .
docker push phantom9999/projector:v1
最后执行下面的命令启动容器:
docker run -d -p 9999:9999 phantom9999/projector:v1
懒得自己构建镜像的同学,可以直接从docker hub上拉对应的镜像(虽然有点大):
docker pull phantom9999/projector:v1
Jetbrains也提供了对应的镜像(系统是ubuntu的),可以在docker hub上找到。
环境使用
在jetbrains的网站上找到projector工具,下载native app,然后连接上云端的CLion即可。
projector貌似是专门优化的windows,在windows上操作无误,但是在mac系统上,稍稍有点小问题。
参考
本文使用的代码及命令可以在github的代码库上找到。