<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          利用 VS Code 構(gòu)建基于容器的開發(fā)環(huán)境

          共 3807字,需瀏覽 8分鐘

           ·

          2021-06-27 21:27

          長話短說,你可以使用 Docker 和 VS Code 的遠程容器來建立一個容器化的本地開發(fā)環(huán)境,這樣就可以讓團隊成員盡快完成入門培訓。你不僅可以在所有環(huán)境中使用同一個基礎(chǔ)鏡像,而且還可以為所有開發(fā)人員提供相同的編輯器,此外還更容易標準化實現(xiàn)。但這種方法并非適合所有人,如果你不喜歡 VS Code 作為代碼編輯器的話,則可以跳過本文,除非你想嘗試一下。
          為團隊設(shè)置本地開發(fā)環(huán)境時,我們所面臨的挑戰(zhàn)之一就在于,確保所有開發(fā)人員的設(shè)置都相同或者能夠滿足需求。這個問題常見的解決方法是制定入門指南,并希望開發(fā)人員遵循這些指南。但是,由于版本兼容性問題和個人經(jīng)驗等問題,導致我們無法使用正確的工具,因此實現(xiàn)統(tǒng)一的環(huán)境設(shè)置實則困難重重。

          圖:常見的環(huán)境設(shè)置方法。

          另外一種解決方案是,準備一個預先配置好的開發(fā)環(huán)境,其中包含了所有必需的庫及依賴項,該環(huán)境可以直接作為容器啟動。這樣,開發(fā)人員就可以在容器提供的隔離環(huán)境中工作了。這種方式可以極大地減少開發(fā)人員花費在克隆代碼庫上的時間。

          圖:使用基于容器的開發(fā)環(huán)境。

          除了為所有開發(fā)人員提供相同的環(huán)境之外,我們還可以在 Visual Studio Code 中使用同一套工具、擴展甚至主題集。盡管這不是必須的,但我們可以利用它來自動安裝項目所需的特定擴展。這種方式可以避免工具的不一致,而且開發(fā)人員也可以免卻手動安裝的麻煩。

          所有這些工作都可以通過Docker 與 VS Code 的 Remote-Containers 擴展的結(jié)合來實現(xiàn)。

          設(shè)置

          在本文中,我將展示一個在 Node 環(huán)境中運行 JavaScript 應(yīng)用程序的示例。有關(guān)的詳細說明請參見官方文檔(https://code.visualstudio.com/docs/remote/containers)。

          • 首先安裝Docker 和 VS Code,然后在 VS Code 中安裝 Remote — Containers 擴展,并確保Docker 可在你的機器上正常運行。

          • 打開項目,在根目錄下創(chuàng)建一個名為 .devcontainer 的文件夾。這個新文件夾內(nèi)包含開發(fā)容器所需的配置文件。

          • 在 .devcontainer 中創(chuàng)建 Dockerfile 和 devcontainer.json,并添加以下配置。

          # Specify the base image you want your dev container to use.# You may use the same exact base image your application would use in production for consistancy.# That could prevent surprises such as "works in local, but not in PROD".FROM node:14.17.0-alpine
          # Additionally you can install other dependencies for the environment while configuring the base image.# In this example, I am installing Git as the Alpine version of node does not come with one.
          RUN apk updateRUN apk add git
          {"name": "DevContainer ReactApp",
          // Provide the dev container with a Dockerfile that it can use to build an image and run the container."dockerFile": "Dockerfile",
          // Command(s) to run before the container is created.// In this case we are installing the node modules."initializeCommand": "yarn install",
          // Starts the development server every time the container starts.// This is triggered on reopening the container as well."postStartCommand": "yarn start",
          // Forward your application's port(s) running in the container to the local machine."forwardPorts": [3000],
          // Required VSC code extensions that you want to automatically install for the developers to use.
          "extensions": ["dbaeumer.vscode-eslint","esbenp.prettier-vscode","eamodio.gitlens"]// Use the devcontainer.json reference to explore all possible configurations.// https://code.visualstudio.com/docs/remote/devcontainerjson-reference}

          在完成上述工作后,我們來構(gòu)建容器。首先,點擊VS Code 命令面板中的“Open Folder in Container”或“Reopen in Container”。

          這一步是初始化開發(fā)容器,拉取 Docker 基礎(chǔ)鏡像、配置容器,然后啟動開發(fā)服務(wù)器。

          完成這一步,你就應(yīng)該能夠在瀏覽器中訪問應(yīng)用程序,并正常使用 VS Code 進行開發(fā)了。就連熱重載都能正常工作!我創(chuàng)建了一個代碼庫(https://github.com/Gigacore/devcontainer-react-example),其中包含一個示例,你可以嘗試一下!

          容器的構(gòu)建和配置只需要執(zhí)行一次,但是需要一定的時間。以后如果不發(fā)生變化,那么重建會更快。但是,如果 devcontainer.json 或 Dockerfile 發(fā)生變化,則需要重新構(gòu)建。如果你嘗試直接重新打開,系統(tǒng)會提示你重建。

          在退出容器或 VS Code 后,下一次可以通過 ”Reopen in Container” 選項重新進入容器。該選項會啟動已配置的容器,并再次啟動開發(fā)服務(wù)器。如果VS Code 在代碼庫中找到 .devcontainer 配置,則會自動提示你啟動容器。

          • 容器和本地計算機之間的文件系統(tǒng)是同步的,因此你可以通過任一環(huán)境訪問代碼。

          • 你可以運行任意多個應(yīng)用程序,即便它們需要不同版本依賴項,而無需在計算機上安裝或修改任何應(yīng)用程序。

          • 團隊中的任何人都可以在自己的計算機上運行應(yīng)用程序,編寫和審核代碼,或者做一些嘗試,包括非技術(shù)成員。

          • 應(yīng)用程序的運行不需要依賴操作系統(tǒng)。

          常見問題和解決方法

          • 你可以利用 VS Code 終端運行任何腳本或命令,因為它就在容器的工作區(qū)中。但是如果想使用macOS 的“Terminal”等其他工具,則需要找到容器,然后執(zhí)行docker exec。

          • 由于應(yīng)用程序在 Docker 容器內(nèi)運行,因此它可以使用的資源(CPU、內(nèi)存等)很有限。默認限制在大多數(shù)情況下都沒有問題。但是,對于有些應(yīng)用程序,你可能需要在Docker選項中提高這些資源限制,以避免發(fā)生卡頓現(xiàn)象。

          并非適合所有人

          • 雖然這種做法可以降低構(gòu)建開發(fā)環(huán)境的難度,但是對于需要在容器范圍之外的環(huán)境中進行廣泛集成和配置的應(yīng)用程序來說并不理想。

          • 高級用戶和經(jīng)驗豐富的開發(fā)人員可能不太喜歡這種方式,特別是有些人更喜歡其他代碼編輯器。這種設(shè)置方式可以作為備選,不要強迫開發(fā)人員運行容器,他們?nèi)匀豢梢允謩釉O(shè)置環(huán)境。

          • 如果應(yīng)用程序占用了大量資源,則運行 Docker 容器可能會消耗更多資源。

          總結(jié)

          這是一個相對較新的概念,有許多地方需要探索,而且也有很多限制需要解決。我個人很喜歡這種方式,而且也比較推薦。如果你也采用了這種方式,請在下方留言分享你的經(jīng)驗。

          原文鏈接:https://santhoshsundar.medium.com/building-container-based-development-environment-with-visual-studio-code-2d7111c650bd

          作者 | Santhosh Sundar       
          譯者 | 彎月    責編 | 歐陽姝黎

          文章轉(zhuǎn)載:CSDN
          (版權(quán)歸原作者所有,侵刪)


          點擊下方“閱讀原文”查看更多

          瀏覽 140
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久久国产精品黄毛片 | 国产女生被男生操网站 | 夜夜骑夜夜撸 | 国产精品三区视频 | 99视频在线观看免费 |