免責聲明:本文采用了一定程度的誇張誇張。作者沒有聲稱要代表迪倫·托馬斯(Dylan Thomas)發言,也沒有主張對不願使用的用戶強加主題。
迪倫·托馬斯(Dylan Thomas)著名地敦促:“不要在那個晚安中溫柔。”在提到死亡的同時,這種情緒可能同樣適用於Linux容器的複雜性。儘管托馬斯(Thomas)於1953年通過,但互聯網代表他(以適當的警告)表示了自信的聲明。
這種信心源於高估和最近將Docker容器作為開發環境配置的鬥爭的融合。隨之而來的挫敗感反映了與無法克服的賠率的鬥爭。
但是,苦難是一位有力的老師。這種經驗為使用Docker容器進行開發提供了(相對)溫和的介紹。首先,讓我們解決“為什麼”。
為什麼要使用Docker容器進行開發?
想像一個項目不僅包括代碼,還包括整個開發環境,依賴性和運行時間。該項目(便攜式和獨立)可以與任何地方,任何地方共享,無需特定環境配置即可完美地運行。
這是Docker容器的本質。 DockerFile在一個文件中定義了整個運行時環境,僅需要一種在容器中開發的方法。
VS代碼遙控器 - 容器:功能強大的組合
VS代碼的“遠程 - 容器”擴展程序允許將項目加載到Docker容器中,並通過VS代碼訪問它們。這種無縫集成簡化了過程。
將容器添加到項目
考慮安裝WSL2和Docker的新鮮Windows機器。嘗試在沒有其他安裝的情況下運行node.js項目將導致錯誤。讓我們配置項目以在預配置的容器中運行,而不是手動node.js安裝。
VS代碼簡化了這一點。 “添加開發容器配置文件...”命令分析項目並建議適當的容器定義。選擇一個node.js版本(例如,node.js 14)添加了一個.devcontainer
文件夾,其中包含dockerfile(定義node.js image)和devcontainer.json
文件(用於項目級配置)。
選擇“重建和重新打開在容器中”,重新啟動與代碼,構建容器並在其中打開項目。左下角確認了與容器的VS代碼連接。終端現在在Linux容器內運行,啟用npm install
和npm start
。
端口映射是從瀏覽器訪問應用程序(通常在端口3000上運行的)所需的。遠程容器擴展程序的“遠程資源管理器”(帶有“端口轉發”部分)允許指定端口映射(在這種情況下為3000)。
自定義是通過devcontainer.json
文件實現的。通過添加forwardPorts
和postCreateCommand
屬性可以自動化端口轉發和npm install
:
{ // ... “前向港口”:[3000], “ PostCreateCommand”:“ NPM安裝”, // ... }
還可以包括VS代碼擴展名,避免在容器中進行手動安裝。添加諸如Prettier和Eslint之類的擴展可以增強開發體驗。
{ // ... “擴展”:[ “ dbaeumer.vscode-eslint”, “ esbenp.prettier-vscode”, “ github.github-vscode-theme” 這是給出的 // ... }
可以自定義DockerFile以添加基本圖像中未包含的軟件。例如,添加cowsay
:
來自mcr.microsoft.com/vscode/devcontainers/javascript-node:0-14 運行apt-get update && apt-get -y安裝cowsay env path =“/usr/games:$ {path}”
請記住: apt-get update
刷新包列表; -y
避免確認提示; &&
連鎖命令; \
允許命令中的線斷裂;並將相關命令分組最小化層。
重建後,潛在問題(例如, cowsay
路徑)可能需要調整Dockerfile內的PATH
環境變量。
高級配置:自定義終端
要自定義終端環境,請修改devcontainer.json
文件。將默認外殼設置為/bin/zsh
和調整VS代碼設置很簡單:
{ // ... "設定": { “ terminal.integrated.shell.linux”:“/bin/zsh”, “ Workbench.Sidebar.Location”:“正確” },, // ... }
將自定義的.zshrc
文件(根據需要調整路徑)將終端設置完成。通過Dockerfile中的git clone
下載插件進一步完善了環境。
總而言之,項目配置位於devcontainer.json
中,而環境配置發生在Dockerfile內。請諮詢官方的遠程容器文檔以獲取更高級的技術。
以上是溫和的介紹,將Docker容器用作開發環境的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Wufoo一直在集成方面非常出色。他們與特定應用程序(例如廣告系列顯示器,MailChimp和Typekit)進行集成,但他們也


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)