我使用以下內容Dockerfile生成 docker 映像作為 CLion 的 ubuntu 工具鏈環境。如圖所示,我沒有任何關于添加用戶的配置。
以下顯示我將 CLion 連接到此 docker 服務器:

當我單擊紅色圈出的設定時,它會顯示:

我的問題是,這個“docker for mac”使用哪個用戶名登錄到 docker 服務器?
在這個 docker 中,我使用root創建一個公共 ssh 密鑰,然后將它添加到我的遠程 git 站點。我發現工具鏈運行時cmake,由于用戶權限不足,無法從我的遠程 git 站點拉下 git repo。所以我猜“docker for mac”不會以root用戶身份登錄docker鏡像(我已經為他們創建了一個ssh公鑰)

uj5u.com熱心網友回復:
“Docker for Mac”中沒有這樣的用戶概念。它只是一個封裝了在 MacOS 上成功運行基于 linux 的容器所必需的元素的產品。
在您的用例中,您需要將與公鑰對對應的 SSH 私鑰從您的機器發送到您需要克隆 git 存盤庫的底層 Ubuntu 容器。
一個幼稚的選擇是創建您的~./ssh檔案夾和相關內容以及COPY私鑰,但絕對不建議這樣做,因為事實上,任何有權訪問影像的人都可以公開訪問您的密鑰。
相反,您可以嘗試另一種方法。老實說,我從未使用過它,所以請采取必要的措施。這個想法是從這篇文章中提取的,并且基于BuildKit的使用。基本上,在構建程序中,您的主機 SSH 構建配置可以訪問底層容器。
正如文章中所解釋的,可以總結為以下步驟:
openssh-client在您的 Ubuntu 映像中安裝 SSH 客戶端,例如
RUN apt-get update && \
apt-get install --yes --no-install-recommends \
openssh-client \
...
- 獲取必要的公鑰掃描您的 Git 服務器。例如,如果使用
github.com:
RUN mkdir -p -m 0600 ~/.ssh && \
ssh-keyscan -H github.com >> ~/.ssh/known_hosts
- 使用 標識在 Dockerfile 中需要 SSH 的命令,
-mount=type=ssh例如:
RUN --mount=type=ssh \
git clone git@<host>:<organization>/google-test.git
- 使用 Buildkit 和標志進行構建,這涉及提供環境變數
DOCKER_BUILDKIT=1,然后按如下方式運行您的構建:
docker build --ssh default .
可能您需要在 CLion 中配置 env 變數(可能在Add environment 中?)。
該程序在Docker 官方檔案中也有詳細記錄。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/438250.html
上一篇:Git合并保持和提交沖突狀態
