成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用 VS Code 在容器中開發

開發 前端
本文將帶領你完成設置,通過 Podman 在免 root 容器內使用 VS Code 和 “Remote - Containers” 擴展進行開發。

一致性可以避免當你有多個開發人員開發同一個項目時出現問題。

當你有多個不同開發環境的開發人員在一個項目上工作時,編碼和測試的不一致性是一種風險。Visual Studio Code(VS Code)是一個集成開發環境(IDE),可以幫助減少這些問題。它可以和容器結合起來,為每個應用程序提供獨立的開發環境,同時提供一個一致的開發環境。

VS Code 的 “Remote - Containers” 擴展 使你能夠創建一個容器定義,使用該定義來構建一個容器,并在容器內進行開發。這個容器定義可以和應用程序代碼一起被簽入到源代碼庫中,這使得所有的開發人員可以使用相同的定義在容器中進行構建和開發。

[[418869]]

默認情況下,“Remote - Containers” 擴展使用 Docker 來構建和運行容器,但使用 Podman 的容器運行環境環境也很容易,它可以讓你使用 免 root 容器。

本文將帶領你完成設置,通過 Podman 在免 root 容器內使用 VS Code 和 “Remote - Containers” 擴展進行開發。

初始配置

在繼續之前,請確保你的紅帽企業 Linux(RHEL)或 Fedora 工作站已經更新了最新的補丁,并且安裝了 VS Code 和 “Remote - Containers” 擴展。(參見 VS Code 網站了解更多安裝信息)

接下來,用一個簡單的 dnf install 命令來安裝 Podman 和它的支持包:

  1. $ sudo dnf install -y podman 

安裝完 Podman 后,配置 VS Code 以使用 Podman 的可執行文件(而不是 Docker)與容器進行交互。在 VS Code 中,導航到 “文件 > 首選項 > 設置”,點擊 “擴展” 旁邊的 “>” 圖標。在出現的下拉菜單中,選擇 “Remote - Containers”,并向下滾動找到 “Remote - Containers: Docker Path” 選項。在文本框中,用 “podman” 替換 “docker”。

 

在文本框中輸入 “podman”

 

現在配置已經完成,在 VS Code 中為該項目創建一個新的文件夾或打開現有的文件夾。

定義容器

本教程以創建 Python 3 開發的容器為例。

“Remote - Containers” 擴展可以在項目文件夾中添加必要的基本配置文件。要添加這些文件,通過在鍵盤上輸入 Ctrl+Shift+P 打開命令面板,搜索 “Remote-Containers: Add Development Container Configuration Files”,并選擇它。

 

Remote-Containers: Add Development Container Configuration Files

 

在接下來的彈出窗口中,定義你想設置的開發環境的類型。對于這個例子的配置,搜索 “Python 3” 定義并選擇它。

 

選擇 Python 3 定義

 

接下來,選擇將在容器中使用的 Python 的版本。選擇 “3 (default)” 選項以使用最新的版本。

 

選擇 “3 (default)” 選項

 

Python 配置也可以安裝 Node.js,但在這個例子中,取消勾選 “Install Node.js”,然后點擊 “OK”。

 

取消勾選 “Install Node.js"

 

它將創建一個 .devcontainer 文件夾,包含文件devcontainer.json和Dockerfile。VS Code 會自動打開devcontainer.json 文件,這樣你就可以對它進行自定義。

啟用免 root 容器

除了明顯的安全優勢外,以免 root 方式運行容器的另一個原因是,在項目文件夾中創建的所有文件將由容器外的正確用戶 ID(UID)擁有。要將開發容器作為免 root 容器運行,請修改 devcontainer.json 文件,在它的末尾添加以下幾行:

  1. "workspaceMount""source=${localWorkspaceFolder},target=/workspace,type=bind,Z"
  2. "workspaceFolder""/workspace"
  3. "runArgs": ["--userns=keep-id"], 
  4. "containerUser""vscode" 

這些選項告訴 VS Code 用適當的 SELinux 上下文掛載工作區,創建一個用戶命名空間,將你的 UID 和 GID 原樣映射到容器內,并在容器內使用 vscode 作為你的用戶名。devcontainer.json 文件應該是這樣的(別忘了行末的逗號,如圖所示):

 

更新后的 devcontainer.json 文件

 

現在你已經設置好了容器的配置,你可以構建容器并打開里面的工作空間。重新打開命令調板(用 Ctrl+Shift+P),并搜索 “Remote-Containers: Rebuild and Reopen in Container”。點擊它,VS Code 將開始構建容器。現在是休息一下的好時機(拿上你最喜歡的飲料),因為構建容器可能需要幾分鐘時間:

 

構建容器

 

一旦容器構建完成,項目將在容器內打開。在容器內創建或編輯的文件將反映在容器外的文件系統中,并對這些文件應用適當的用戶權限。現在,你可以在容器內進行開發了。VS Code 甚至可以把你的 SSH 密鑰和 Git 配置帶入容器中,這樣提交代碼就會像在容器外編輯時那樣工作。

接下來的步驟

現在你已經完成了基本的設置和配置,你可以進一步加強配置的實用性。比如說:

  • 修改 Dockerfile 以安裝額外的軟件(例如,所需的 Python 模塊)。
  • 使用一個定制的容器鏡像。例如,如果你正在進行 Ansible 開發,你可以使用 Quay.io 的 Ansible Toolset。(確保通過 Dockerfile 將 vscode 用戶添加到容器鏡像中)
  • 將 .devcontainer 目錄下的文件提交到源代碼庫,以便其他開發者可以利用容器的定義進行開發工作。

在容器內開發有助于防止不同項目之間的沖突,因為隔離了不同項目的依賴關系及代碼。你可以使用 Podman 在免 root 環境下運行容器,從而提高安全性。通過結合 VS Code、“Remote - Containers” 擴展和 Podman,你可以輕松地為多個開發人員建立一個一致的環境,減少設置時間,并以安全的方式減少開發環境的差異帶來的錯誤。

責任編輯:未麗燕 來源: Linux中國
相關推薦

2022-11-17 10:23:13

VS CodeCodiumPython

2018-09-08 09:25:05

編程語言PythonVS Code

2018-10-10 14:21:06

Python 工具程序員

2021-02-05 09:18:33

VS CodeVim操作

2023-09-21 18:14:34

VSCode擴展工具

2024-02-29 18:05:21

Code插件工具

2022-04-20 09:02:57

架構

2021-06-28 07:13:34

Vue Code 擴展

2021-10-22 10:16:37

微軟瀏覽器開發

2011-08-31 17:58:00

VS.netLUA開發環境

2022-09-13 15:44:52

VSLook插件

2024-08-22 14:30:32

前端開發VS Code

2024-01-01 18:57:01

Code技巧符號

2024-08-29 16:06:26

前端Vue開發

2021-01-18 17:23:30

代碼調試VS Code

2011-06-08 16:56:37

VS2008 Qt

2021-04-21 07:51:06

Vue 開發VS CodeVetur

2023-04-17 07:49:34

2022-03-03 20:57:53

代碼編輯器VS code

2020-05-07 12:00:13

GitHubIDE瀏覽器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美自拍第一页 | 国产精品国产a级 | 免费成人毛片 | 中文字幕四虎 | 欧美精品久久 | 日本成人中文字幕 | 夜夜摸夜夜操 | 精品免费av | 久国久产久精永久网页 | 国产精品乱码一区二区三区 | 男人的天堂亚洲 | 国产精品色一区二区三区 | 日韩av一区二区在线观看 | 91天堂| 欧美1级 | 亚洲一区二区三区在线播放 | 久久69精品久久久久久久电影好 | 久久亚洲综合 | 国产一区二区三区视频在线观看 | 国产精品久久久久久久久免费樱桃 | 2019中文字幕视频 | 日本一区二区三区四区 | 操操日| 91免费小视频 | 精品一区二区三区在线观看国产 | 国产一区日韩在线 | 久久中文一区二区 | 玖玖玖在线 | 欧美专区在线 | 91观看 | www.日韩免费 | 成人影院在线 | 久久精品超碰 | www.日韩免费 | 亚洲欧美在线视频 | 亚洲精品欧美 | 亚洲高清一区二区三区 | 欧美激情精品久久久久久 | 免费一级欧美在线观看视频 | 精品国产免费人成在线观看 | 国产精品色 |