自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用容器快速配置C/C++開發(fā)調(diào)試環(huán)境

開發(fā) 前端
因?yàn)槿萜鞯某霈F(xiàn),讓我們的環(huán)境搭建變得非常容易,而且我們?cè)僖膊挥脫?dān)心因?yàn)槟撤N原因?qū)е颅h(huán)境破壞了,如果容器受損了,我們只需要重新啟動(dòng)一個(gè)新的容器即可。

對(duì)于很多新人來說,學(xué)習(xí)一門編程語言最難的部分可能就是環(huán)境的搭建,因?yàn)椴煌僮飨到y(tǒng)還有網(wǎng)絡(luò)的原因,很多時(shí)候一個(gè)環(huán)境搭建就勸退了很多新人,但是隨著容器化的出現(xiàn),現(xiàn)在這種問題完全不存在了,因?yàn)榄h(huán)境的搭建可以通過容器分分鐘完成,我們需要做的就是把配置文件復(fù)制過來,然后運(yùn)行 docker 容器即可。

Docker 鏡像的優(yōu)點(diǎn)

過去我們開發(fā)應(yīng)用都是在本地搭建各種環(huán)境,然后進(jìn)行開發(fā),最后部署到到服務(wù)器上,但是因?yàn)榄h(huán)境的不同,往往導(dǎo)致出現(xiàn)各種問題,并且調(diào)試起來也是相當(dāng)?shù)穆闊?/p>

現(xiàn)在我們可以通過創(chuàng)建一個(gè)帶有預(yù)安裝依賴項(xiàng)和工具(如編譯器、調(diào)試器等)的 docker 鏡像,然后在鏡像容器中進(jìn)行開發(fā)調(diào)試,最后直接部署構(gòu)建容器即可。

這個(gè)鏡像將成為開發(fā)人員本地的服務(wù)器和 CI/CD 服務(wù)器,也就是說,將不會(huì)出現(xiàn)“它在我的機(jī)器上工作,但在 CI 上失敗!”的問題。

圖片

由于構(gòu)建在容器內(nèi)運(yùn)行,它不受任何單個(gè)開發(fā)人員本地環(huán)境的環(huán)境變量、工具或設(shè)置的影響,這意味著環(huán)境變得孤立。任何開發(fā)人員使用的環(huán)境都是一樣的。

理想情況下,Docker 鏡像會(huì)被正確地標(biāo)記一些有意義的版本名稱;它允許用戶通過從注冊(cè)表中提取正確的映像來在環(huán)境之間跳轉(zhuǎn)。即使鏡像已經(jīng)從注冊(cè)中心移除,但是因?yàn)?docker 鏡像是從 Dockerfiles 建立的,因此,我們總是可以從舊的 Dockerfile 重新構(gòu)建映像。此外,因?yàn)槲覀冸S時(shí)通過 git 進(jìn)行版本管理 Dockerfile,所以對(duì)于環(huán)境的構(gòu)建永遠(yuǎn)都會(huì)非常的輕松。

Dockerfile 文件

c/c++的鏡像配置非常簡(jiǎn)單,我們只需要從基礎(chǔ)鏡像 ubuntu 來進(jìn)行配置即可,通過 apt-get install 安裝 c 開發(fā)環(huán)境即可。如果需要一些數(shù)據(jù)庫文件,我們可以添加到 dockerfile 文件中,當(dāng)然,我們也可以通過 docker-compose 進(jìn)行編排,添加一個(gè) redis 的容器,然后網(wǎng)絡(luò)關(guān)聯(lián)彼此。

此外,我們還可以通過 gcc 這個(gè)鏡像直接進(jìn)行構(gòu)建,可以不需要在安裝 c 的開發(fā)環(huán)境。

當(dāng)然,我們可以將編譯構(gòu)建命令寫入到 Dockerfile 文件中,這樣我們直接運(yùn)行容器就可以編譯生成可執(zhí)行文件。

下面是具體的 Dockerfile 文件內(nèi)容。

# 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

安裝調(diào)試工具

目前的鏡像只是包含編譯工具,但是并沒有調(diào)試工具,我們需要安裝 gdb 工具來進(jìn)行代碼的調(diào)試,因此我們需要修改 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

總結(jié)

因?yàn)槿萜鞯某霈F(xiàn),讓我們的環(huán)境搭建變得非常容易,而且我們?cè)僖膊挥脫?dān)心因?yàn)槟撤N原因?qū)е颅h(huán)境破壞了,如果容器受損了,我們只需要重新啟動(dòng)一個(gè)新的容器即可。

通過文件的映射,我們可以在本地編輯直接編輯文件,然后映射到容器中,當(dāng)然我們也可以直接在容器中修改,但是最好添加一個(gè)映射,這樣,當(dāng)我們的容器銷毀的時(shí)候,我們的代碼源文件還在本地保存。

鏡像文件除了可以從官網(wǎng)進(jìn)行下載,也可以自己去定義,特別是當(dāng)你需要一個(gè)特有的環(huán)境的時(shí)候,你就可以選擇構(gòu)建自己的本地鏡像。

此外,我們?cè)?Dockerfile 中是可以執(zhí)行命令的,比如一些依賴的安裝,都可以在 Dockerfile 中指定運(yùn)行安裝。

另外,構(gòu)建鏡像只需要第一次從網(wǎng)絡(luò)下載,之后就會(huì)運(yùn)行本地緩存,并且容器運(yùn)行起來非常的快,只需要幾秒鐘即可。

責(zé)任編輯:武曉燕 來源: 程序那些事兒
相關(guān)推薦

2024-01-24 13:45:21

Python開發(fā)操作系統(tǒng)

2011-01-14 12:53:45

Linux PPCEclipseC

2010-01-27 14:00:50

CC++運(yùn)行環(huán)境

2010-01-14 16:54:02

C++開發(fā)環(huán)境

2010-01-15 09:58:38

C++ Builder

2010-01-18 15:19:41

Visual C++開

2010-08-10 14:17:32

思科路由器Assistant配置

2021-06-02 08:13:28

VscodeVisual stduC++

2010-01-20 11:02:42

C++開發(fā)環(huán)境

2009-06-05 14:54:09

EclipseC++環(huán)境搭建

2021-04-11 10:48:37

UbuntuC++Linux

2024-02-05 09:43:00

編程工具

2011-01-14 12:44:32

Linux PPCEclipseC

2010-01-26 15:51:06

C++變量

2014-04-15 11:27:50

C++開發(fā)者Objective-C核心語法

2010-11-24 10:35:40

Objective-C

2010-01-28 10:33:10

C++開發(fā)程序

2010-01-12 18:00:30

Visual C++

2009-11-12 10:05:09

Visual C++

2011-05-18 18:05:47

C#C++
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)