qtCreator和docker最佳实践
qtCreator and docker best practises
在诸如qtCreator之类的IDE中使用docker的最佳实践是什么?
-
是否应该在容器中安装qtCreator?
-
您是否应该在主机上进行编码,并且只通过共享装载的卷在容器内构建?在这种情况下,您是否必须从容器中手动启动运行/调试,而不是通过qtCreator中的ctrl+r或F5运行/调试(无法再使用快捷键ctrl+r或F5将是一种痛苦)
好问题。我目前正在寻找答案。根据我的经验,建议将工具文件夹装入容器中。不要忘记使用用户设置装载文件夹。
我以前试过把QtCreator放在容器里:最糟糕的选择。容器的大小会增加,一旦删除容器,您也会错过所有用户设置。我还尝试在每个编译命令中运行一个容器。这是个不错的选择。也可以在每次运行命令时运行容器,并将调试器附加到容器,就像对远程主机一样。
问题是:你的项目依赖关系在哪里?在本地主机上,使用源代码?还是在集装箱里?如果它们在容器中,则会错过IDE的所有建议和自动完成,因为它在容器中看不到依赖性代码。
VS Code有一个可以在容器中完全开发的体系结构,只安装源代码。
我仍在做一些实验以找到更好的解决方案。
我觉得把整个开发环境放在容器中很舒服(QtCreator也是)。每个容器都可以将自己的配置保存在不同的位置,这样即使容器被销毁,您也不会丢失设置。您可以在运行期间通过安装一些位置进行配置来管理此问题,这些位置是专门为特定容器准备的。
docker run ... -v /home/$USER/my_container_files/config/:/home/my_container_user/.config/ some_image:latest
对于源(和依赖项,如果它们不是通过像conan或apt这样的包管理器提供的,那么在这种情况下,在容器中提供它,我强烈建议这样做)也是如此。
这样,您就不会觉得在本地环境中工作有什么不同,同时拥有集装箱化的所有优势。
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 在c代码之间共享数据的最佳方式
- 使用std::source_location报告错误的最佳实践
- 派生类销毁的最佳实践是什么
- 将寄存器设计成可由C和C++访问的外设的最佳实践
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 在C++中向零方向近似的最佳方法
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 从嵌套在std::映射中的std::列表中删除元素的最佳方式
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 检测win32服务创建和删除的最佳方法
- 在reactor中存储eventHandlers的最佳方式是什么
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 在AVX通道中混洗的最佳方式
- 程序顶部的声明与定义(最佳实践)
- qtCreator和docker最佳实践