文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用容器快速配置C/C++开发调试环境

2024-12-13 16:03

关注

Docker 镜像的优点

过去我们开发应用都是在本地搭建各种环境,然后进行开发,最后部署到到服务器上,但是因为环境的不同,往往导致出现各种问题,并且调试起来也是相当的麻烦。

现在我们可以通过创建一个带有预安装依赖项和工具(如编译器、调试器等)的 docker 镜像,然后在镜像容器中进行开发调试,最后直接部署构建容器即可。

这个镜像将成为开发人员本地的服务器和 CI/CD 服务器,也就是说,将不会出现“它在我的机器上工作,但在 CI 上失败!”的问题。

由于构建在容器内运行,它不受任何单个开发人员本地环境的环境变量、工具或设置的影响,这意味着环境变得孤立。任何开发人员使用的环境都是一样的。

理想情况下,Docker 镜像会被正确地标记一些有意义的版本名称;它允许用户通过从注册表中提取正确的映像来在环境之间跳转。即使镜像已经从注册中心移除,但是因为 docker 镜像是从 Dockerfiles 建立的,因此,我们总是可以从旧的 Dockerfile 重新构建映像。此外,因为我们随时通过 git 进行版本管理 Dockerfile,所以对于环境的构建永远都会非常的轻松。

Dockerfile 文件

c/c++的镜像配置非常简单,我们只需要从基础镜像 ubuntu 来进行配置即可,通过 apt-get install 安装 c 开发环境即可。如果需要一些数据库文件,我们可以添加到 dockerfile 文件中,当然,我们也可以通过 docker-compose 进行编排,添加一个 redis 的容器,然后网络关联彼此。

此外,我们还可以通过 gcc 这个镜像直接进行构建,可以不需要在安装 c 的开发环境。

当然,我们可以将编译构建命令写入到 Dockerfile 文件中,这样我们直接运行容器就可以编译生成可执行文件。

下面是具体的 Dockerfile 文件内容。

# Get the base Ubuntu image from Docker Hub
FROM ubuntu:latest
# Update apps on the base image
RUN apt-get -y update && apt-get install -y
# Install the Clang compiler
RUN apt-get -y install clang vim
# Specify the working directory
WORKDIR /usr/src/dockertest1
# Get the GCC preinstalled image from Docker Hub
FROM gcc:4.9
# Specify the working directory
WORKDIR /usr/src/dockertest1
docker build -t mygcc:local .
docker run -it -d -v /home/user/project:/usr/src/dockertest1 mygcc:local
/bin/bash

安装调试工具

目前的镜像只是包含编译工具,但是并没有调试工具,我们需要安装 gdb 工具来进行代码的调试,因此我们需要修改 Dockerfile 来引入 gdb 工具。

# Get the base Ubuntu image from Docker Hub
FROM ubuntu:latest
# Update apps on the base image
RUN apt-get -y update && apt-get install -y
# Install the Clang compiler
RUN apt-get -y install clang vim gdb
# Specify the working directory
WORKDIR /usr/src/dockertest1

总结

因为容器的出现,让我们的环境搭建变得非常容易,而且我们再也不用担心因为某种原因导致环境破坏了,如果容器受损了,我们只需要重新启动一个新的容器即可。

通过文件的映射,我们可以在本地编辑直接编辑文件,然后映射到容器中,当然我们也可以直接在容器中修改,但是最好添加一个映射,这样,当我们的容器销毁的时候,我们的代码源文件还在本地保存。

镜像文件除了可以从官网进行下载,也可以自己去定义,特别是当你需要一个特有的环境的时候,你就可以选择构建自己的本地镜像。

此外,我们在 Dockerfile 中是可以执行命令的,比如一些依赖的安装,都可以在 Dockerfile 中指定运行安装。

另外,构建镜像只需要第一次从网络下载,之后就会运行本地缓存,并且容器运行起来非常的快,只需要几秒钟即可。

来源:程序那些事儿内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯