簡體   English   中英

測量並可能加快 Docker 容器中的 VS Code 擴展安裝

[英]measure and possibly speed up VS Code extension installation in Docker container

我正在使用帶有 DevContainer 擴展的 VS Code 在 Docker 容器中運行。
它工作得很好,但是每次更新 VS Code 或 Dockerfile 時,我都必須重建容器,在容器內安裝我需要的擴展需要幾分鍾。

[218513 ms] Start: Run in container: cd /root/.vscode-server/bin/e5a624b788d92b8d34d1392e4c4d9789406efe8f; export VSCODE_AGENT_FOLDER=/root/.vscode-server; /root/.vscode-server/bin/e5a624b788d92b8d34d1392e4c4d9789406efe8f/server.sh --disable-telemetry --extensions-download-dir /root/.vscode-server/extensionsCache --install-extension ms-python.python --install-extension ms-python.vscode-pylance --force
[537378 ms] Installing extensions...
Installing extension 'ms-python.python' v2020.12.424452561...
Installing extension 'ms-python.vscode-pylance' v2020.12.2...
Extension 'ms-python.vscode-pylance' v2020.12.2 was successfully installed.
Extension 'ms-python.python' v2020.12.424452561 was successfully installed.
[537379 ms] 
[537379 ms] Start: Run in container: ls /root/.vscode-server/extensionsCache || true
[537387 ms] ms-python.python-2020.12.424452561
ms-python.vscode-pylance-2020.12.2
ms-toolsai.jupyter-2020.12.414227025

我對此有兩個問題:

  1. 是否有可能衡量什么是花費時間? 是下載或安裝(或兩者)需要那么長時間嗎?
  2. 如果大部分時間是下載,有沒有辦法緩存擴展?

加速容器初始化有多種解決方案:

一種方法是使用docker 卷並將其安裝在$HOME/.vscode-server下。 在這種情況下,VS Code 將使用已安裝的實例。

另一種方法是將本地文件夾作為$HOME文件夾掛載到 dev-container 中。 它可能會降低容器的整體性能,但我們也將保持永久 session 例如。 bash歷史,azure session等

第二種解決方案目前在擴展安裝方面存在一些問題(請參閱: 與.installExtensionsMarker 文件相關的問題),所以目前我建議使用 docker 卷。

有關如何配置卷的更多詳細信息,請參閱Advanced Container Configuration文檔的以下部分:

我還建議使用一些已經構建並推送到容器注冊表的最終映像,以避免在container rebuild期間安裝任何 python 或其他包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM