使用Vscode結(jié)合docker進(jìn)行開(kāi)發(fā)的詳細(xì)過(guò)程
使用 Docker 與 VS Code 可以優(yōu)化整個(gè)本地開(kāi)發(fā)環(huán)境,加速項(xiàng)目進(jìn)度過(guò)程。在所有環(huán)境中使用相同的基礎(chǔ)映像,為所有開(kāi)發(fā)人員提供相同的編輯器工具,可以更容易實(shí)現(xiàn)標(biāo)準(zhǔn)。
大型項(xiàng)目的團(tuán)隊(duì)首先必須確保安裝依賴、內(nèi)核版本這些開(kāi)發(fā)環(huán)境是統(tǒng)一的。為了解決開(kāi)發(fā)環(huán)境一致性的問(wèn)題,常規(guī)傳統(tǒng)的辦法就是制定開(kāi)發(fā)人員遵循制定指南,但是盡管如此實(shí)際開(kāi)發(fā)過(guò)程還是會(huì)遇到各種障礙。
設(shè)置環(huán)境的常規(guī)方法如下圖所示:
另一種解決方案是使用所有必需的庫(kù)和依賴項(xiàng)預(yù)先配置的開(kāi)發(fā)環(huán)境,開(kāi)發(fā)人員可以在容器中分拆這些庫(kù)和依賴項(xiàng)。然后,開(kāi)發(fā)人員可以在容器提供的隔離環(huán)境中工作。這極大地減少了開(kāi)發(fā)人員在克隆代碼庫(kù)以開(kāi)始處理它之間花費(fèi)的時(shí)間。
除了為所有開(kāi)發(fā)人員提供相同的環(huán)境之外,我們可以利用它來(lái)自動(dòng)安裝您的項(xiàng)目所需的特定擴(kuò)展。這可以避免工具的不一致使用,并且省去開(kāi)發(fā)人員手動(dòng)安裝的麻煩。
以下是通過(guò)結(jié)合使用 Docker 和 VS Code 的Remote — Containers擴(kuò)展來(lái)實(shí)現(xiàn)的。
設(shè)置
在本文中,我將提供一個(gè)在 Node 環(huán)境中運(yùn)行的 JavaScript 應(yīng)用程序示例。閱讀在容器內(nèi)開(kāi)發(fā)以獲取所有技術(shù)堆棧的詳細(xì)文檔。
如果您尚未安裝Docker和 VS Code,請(qǐng)先安裝它們。在 VS Code 中安裝Remote — Containers擴(kuò)展。確保 Docker 正在您的機(jī)器上運(yùn)行。
轉(zhuǎn)到您的項(xiàng)目并在根目錄中創(chuàng)建一個(gè)名為.devcontainer的文件夾。這個(gè)新文件夾包含開(kāi)發(fā)容器所需的配置文件。
在.devcontainer 中創(chuàng)建Dockerfile和devcontainer.json并添加以下配置。
Dockerfile文件如下
# 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 update RUN apk add git
devcontainer.json文件如下
{ "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-esli
完成后,我們需要構(gòu)建容器。為此,請(qǐng)使用 VS Code 命令面板中的“在容器中打開(kāi)文件夾”或“在容器中重新打開(kāi)”。
這應(yīng)該初始化開(kāi)發(fā)容器。它拉取 docker 基礎(chǔ)鏡像,配置容器,并啟動(dòng)開(kāi)發(fā)服務(wù)器。
結(jié)語(yǔ)
容器的構(gòu)建和配置是一次性活動(dòng),需要時(shí)間。如果沒(méi)有更改,后續(xù)重建會(huì)更快。但是,如果 devcontainer.json 或 Dockerfile 發(fā)生更改,則需要重新構(gòu)建以應(yīng)用更改。如果您嘗試直接重新打開(kāi),系統(tǒng)將提示您重建。
到此這篇關(guān)于使用Vscode結(jié)合docker進(jìn)行開(kāi)發(fā)的的文章就介紹到這了,更多相關(guān)Vscode結(jié)合docker開(kāi)發(fā)內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。