翻譯|使用教程|編輯:吳園園|2020-01-20 10:24:06.670|閱讀 4426 次
概述:CLion是一款專為開發C及C++所設計的跨平臺IDE。本篇教程將為您介紹如何將Docker與CLion結合使用。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
CLion是一款專為開發C及C++所設計的跨平臺IDE。它是以IntelliJ為基礎設計的,包含了許多智能功能來提高開發人員的生產力。這種強大的IDE幫助開發人員在Linux、OS X和Windows上來開發C/C++,同時它還使用智能編輯器來提高代碼質量、自動代碼重構并且深度整合CMake編譯系統,從而提高開發人員的工作效率。
我們得到的常見問題之一是,為什么CLion中沒有Docker集成?實際上,CLion與Docker配合得很好!可能還沒有一個特定的“使用Docker”按鈕-但是,即使您是Docker新手,您自己進行設置實際上也非常簡單明了!
請繼續閱讀,或觀看內容相同的視頻:
為什么要使用Docker?
但是,您為什么要這樣做呢?Docker不僅是最新趨勢,而且代表了一種以快速,輕松,可重現和可靠的方式設置不同環境的新方法,例如,易于共享,例如在版本控制中。
C ++開發人員的常見用法是:使用多個工具鏈(尤其是同一編譯器的不同版本–否則很難維護),使用用于不同平臺的交叉編譯器,甚至只是使用單個環境但使它變得容易讓團隊中的每個人都可以快速輕松地獲得相同的環境(并保持更新)。
Docker的重量比VM輕,但實際上提供了相同級別的隔離。設置聽起來很復雜,但是許多人感到驚訝的是,上手如此簡單。
創建一個與CLion一起使用的Docker容器。
Docker容器在Dockerfile中進行了描述。它們看起來像簡單的腳本,但是具有一些特殊的屬性,使它們有些特殊。
首先,您可以引用“基礎映像”,它是一個預先構建的容器,通常可以通過docker Registry獲得,它完成了很多繁重的工作。我們將使用Ubuntu基本映像為我們提供一個通用的平臺開始,但其他OS映像也可用。例如
FROM ubuntu:18.04
其次,在Dockerfile每一行是在什么碼頭工人調用執行層。一旦創建,每個層都是不可變的,因此可以輕松且廉價地回滾上一層的任何突變,而無需重新創建下層的所有層。
一旦習慣了,這就是使Docker成為如此快速且高效的環境的原因之一。在這里,我們將不再深入。
我們已經創建了一個參考Dockerfile供您入門。如何更改它以滿足您的需求應該很明顯。
通常,您將更改該apt-get部分,如果您以前使用過Ubuntu,則應該立即熟悉。當然,如果您更改基本映像,則可能需要使用其他方法來獲取依賴關系。關鍵是它只是使用基本映像操作系統的軟件包管理器(在Docker RUN命令中)。
您可能還可以獲取(或創建自己)具有所有依賴項的基本映像。
RUN apt-get update \ && apt-get install -y ssh \ build-essential \ gcc \ g++ \ gdb \ clang \ cmake \ rsync \ tar \ python \ && apt-get clean然后,Dockerfile會設置SSH,以便CLion可以連接到其中,并創建供CLion使用的用戶。
RUN useradd -m user && yes password | passwd user
通常,憑據不必太晦澀難懂,但是您當然可以在需要時更改它們–或使用另一種方式(超出本介紹的范圍)來指定細節,而無需在Dockerfile中提及它們。
在Dockerfile頂部的注釋中,是構建和運行此Docker容器所需執行的三個命令。
第一個構建容器:
docker build -t clion/remote-cpp-env:0.5 -f Dockerfile.remote-cpp-env .
運行此過程需要幾分鐘,因為它會下載Ubuntu映像(無論您是否已經在Ubuntu上運行),將其“安裝”到第一層,安裝所有依賴項(即apt-get行),設置SSH和創建用戶!鑒于所有這些,它出奇的快(您只需要這樣做一次)。
構建完成后,您可以使用下一行運行容器:
docker run -d --cap-add sys_ptrace -p127.0.0.1:2222:22 --name clion_remote_env clion/remote-cpp-env:0.5
將-d容器作為守護程序運行,因此控件將返回給您。
--cap-add sys_ptrace添加了ptrace功能,這對于調試是必需的。默認情況下,Docker容器通常非常小,因此有時您需要啟用基本功能。
-p2222:22指定端口映射。容器內部的端口22(默認SSH端口)映射為容器外部,作為主機環境上的端口2222。
2222沒什么特別的。加倍或乘以10是表示映射端口的常用方法,但是您可以在此處指定任何可用的端口號。如果您打算并行運行多個容器(例如,以支持備用工具鏈),則這將很有用。
無論您選擇什么端口號,因為它只是臨時映射的,并且可以重用,所以通常值得清除所有緩存的SSH密鑰:
ssh-keygen -f "$HOME/.ssh/known_hosts" -R [localhost]:2222"
不用擔心,如果它告訴您找不到任何東西(可能是第一次)。
因此,現在Docker容器已啟動并正在運行,并已安裝工具鏈。剩下的就是讓CLion使用它。
在Docker上使用遠程開發工作流程
由于我們在容器中設置了SSH,因此可以使用CLion的標準遠程開發功能將其連接到其中。有關設置完全遠程模式的完整詳細信息,請參見我們的幫助頁面。
簡而言之,您應該在“ 構建”,“執行”,“部署”下的設置中將新的“ 工具鏈”條目添加為“ 遠程主機”類型。
然后單擊“ 憑據”部分中的,并填寫我們在Dockerfile中設置的SSH憑據(主機: localhost,端口: 2222,用戶名: user,密碼 :)password。
最后,添加使用此工具鏈的CMake配置文件,您就完成了。如果要對容器內使用的路徑進行更精細的控制,請查看“部署設置”頁面。
不管哪種方式,一旦您提交了設置(Apply和/或OK),并等待CMake配置文件加載和文件傳輸,您都可以從Run Config下拉列表中選擇CMake配置文件,您的代碼將現在可以使用指定的工具鏈在容器內進行編譯,運行和調試。
如果容器的CMake版本早于本地項目(并且您首先在本地創建了該項目),則可能需要在CMakeLists.txt文件頂部重新設置CMake版本。
您還可以在Dockerfile中獲得更高版本的CMake,但這超出了本文的范圍。
改變Docker環境
如果您需要更改容器,則可能還需要重新運行構建步驟。請確保查閱Docker文檔,因為由于Docker的廣泛緩存(通常是一件好事),更改是否生效并不總是很明顯。
如果您要重建,則可能還必須重新加載CMake項目。
=====================================================
想要購買Clion正版授權的朋友可以。
更多精彩內容,敬請關注下方的微信公眾號,及時獲取產品最新資訊▼▼▼
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: