我想使用docker来对我的C++项目进行dockerize.互联网建议最好使用2个容器 - 开发和产品.但我不明白我需要如何创建一个开发容器来支持持续集成.
问题如下:
也许我根本没有正确的方向,例如,开发容器应该包含eclipse?关于CI怎么样呢?我找到的所有教程通常都是指PHP,没有编译阶段.
Docker和C++有不同的模式.
用准备好的Docker镜像编译项目
这包括使用所需编译器和第三方库(使用docker build创建)的docker镜像,并使用docker run命令编译项目.这通常是处理CI环境最常用的方式.
优点:
缺点:
在项目范围内构建Docker镜像
在这种情况下,您将所有需求和代码封装在docker映像中,这意味着您必须在每次代码更改时重建它,删除以前运行的容器,在CI服务器中下载新映像等等.
优点:
缺点:
请记住,Docker有一定数量的最大允许图层(我猜它仍然是127),你拥有的图层越多,图像就越大.
结论
我会明确地选择第一个解决方案,因为它可以提供更大的灵活性,只要您使用Docker卷,就可以在不同环境中保持更改,尤其是在使用某些包管理器(如conan或vcpkg)时.
有关Docker/C++映像的示例,请按照解决方案#1,查看:我的一个docker映像
关于版本,您可以使用COPY或ADD在极其简单的Dockerfile中构建您的docker镜像,只需要项目所需的最小依赖项(最好通过静态编译代码来实现)
归档时间: |
|
查看次数: |
5677 次 |
最近记录: |