Hur man redigerar kod i Docker-behållare med Visual Studio-kod

0
164

Att utveckla eller felsöka kod i Docker-behållare kan vara svårt. Du kopplar vanligtvis till behållaren och använder skalverktyg för att redigera filer. Visual Studio Code Remote Containers-tillägget låter dig öppna mappar i behållare så att du kan arbeta med dem i din kodredigerare.

Fjärrutveckling fungerar med Docker Desktop 2.0 och uppåt för Windows och macOS och Docker Motor 18.06 och högre för Linux. Om du använder Windows 10 Home måste du ha uppdateringen från april 2020, Docker Desktop 2.3 och Windows Subsystem for Linux installerat.

På containersidan är VS Code kompatibel med både x64- och ARM-containrar. Du kan använda Alpine, Debian, Ubuntu, CentOS och RHEL operativsystem. Om din basbild inte fungerar direkt bör du kunna installera ytterligare paket inuti den för att slutföra anslutningen.

Komma igång

Starta VS-kod, tryck på Ctrl + Skift + P och sök efter & # 8220; tillägg & # 8221 ;. Välj & # 8220; Installera tillägg & # 8221; för att ta upp sidofältet. Sök efter & # 8220; fjärrkontroll & # 8211 i tilläggsfönstret. Behållare & # 8221; och installera det matchande objektet.

Efter installationen av tillägget visas en ny grön knapp längst ner till vänster i statusfältet. Klicka här för att visa kommandopaletten, fylld med tillgängliga fjärrkommandon. Om du hellre vill undvika att använda musen kan du också hitta kommandona genom att trycka på Ctrl + Skift + P och skriva & # 8220; fjärrkontroll & # 8221 ;. Tillägget kommer också att dyka upp i andra delar av gränssnittet, till exempel välkomstsidan och mappöppningsfönstret.

Annons

För att öppna din första Dockerized-mapp tar du upp kommandolistan och väljer & # 8220; Bifoga till Running Container & # 8221 ;. Du måste erkänna en varning om att containern kan utföra otillförlitlig kod. Du bör endast bifoga behållare som skapats från bilder du litar på, eftersom en skadlig behållare med en VS-kods arbetsytafil kan äventyra ditt system.

VS-kod visar en lista över Docker-behållare som körs på ditt system. Välj behållaren du vill ansluta till. Ett nytt fönster startas. Det kan ta några sekunder att starta medan VS Code installerar sina fjärrserverkomponenter i behållaren. Du kommer att se den aktiva behållaren visas längst ned till vänster i statusfältet.

När fönstret är klart kan du börja arbeta. Klicka på & # 8220; Öppna mapp & # 8221; -knappen i den vänstra rutan för att visa en filväljare. Detta visar filsystemet i behållaren. Navigera till den katalog som du vill öppna och tryck på & # 8220; OK & # 8221 ;.

Sidofältet uppdateras för att visa den valda katalogens innehåll. Klicka på någon av filerna för att öppna den i VS-kodredigeraren. Du kan nu göra ändringar i behållaren utan att manuellt kopiera filer eller ställa in en fungerande katalogbindningsfäste. Detta maximerar effektiviteten när du använder en Dockeriserad utvecklingsmiljö eller felsöker en behållare som inte fungerar.

VS-kodens fullständiga funktionsuppsättning är tillgänglig, inklusive IntelliSense-kodavslutning och dess felsökningsverktyg. Rutor som konsolen och terminalen kommer att fästas till behållarens in- och utgångsströmmar.

Hur fungerar det?

Det första du bör känna igen om integrationen är att VS Code kommer att ändra ditt containers filsystem. Det installerar en server i behållarna du ansluter till, som matar tillbaka information till redigerarklienten.

Annons

Servern övervakar filsystemet, läser filer och startar processer i behållaren. Detta driver funktioner som VS Code: s felsökare. Redaktören kommer att be servern att köra din källa och låta den inspektera koden som körs i behållaren.

På samma sätt installerar VS Code kopior av dina andra tillägg inuti behållaren. Detta säkerställer att de har full åtkomst till containerfilsystemet, så de fungerar utan avvikelser jämfört med en lokal mapp. Slutresultatet är en fullfjädrad redaktörsupplevelse som fungerar transparent, även om den är spridd över din värd och behållare. Beroende på storleken på din miljö kan den första körningen ta några ögonblick men containerservern kommer att cachas för senare användning.

Utvecklingscontainrar

Utöver att öppna filer i en befintlig container, kan fjärrsystemet definiera utvecklingscontainrar som inkapslar din arbetsmiljö. En sådan behållare bör innehålla alla programberoende som du installerar innan du utvecklar din applikation lokalt.

När du använder en utvecklingsbehållare kan du antingen binda montera din arbetskatalog eller använda en isolerad volym. Det senare alternativet undviker filsystemföroreningar och erbjuder förbättrad prestanda eftersom det är mer infödd för Docker.

Utvecklingscontainrar skapas från .devcontainer/devcontainer.json-filer. Dessa beskriver Docker- och Visual Studio-konfigurationen som startar din utvecklingsmiljö.

{& quot; bild & quot ;: & quot; mcr.microsoft.com/vscode/devcontainers/javascript-node: 16 & quot ;, & quot; tillägg & quot ;: & quot; EditorConfig.EditorConfig & quot ;, & quot; forwardPorts & quot ;: [3000]}

Devcontainer.json-filen som visas ovan ställer in en utvecklingsbehållare som använder Microsofts Node.js-mall. EditorConfig VS Code-tillägget är aktiverat och lägger till stöd för .editorconfig-filer i din arbetskatalog. Port 3000 mappas sedan från värden till behållaren.

Annonsering

Dev-containerfiler stöder också några andra alternativ. Du kan ställa in VS Code-inställningar. Json-värden, lägga till ett kommando som ska köras inuti behållaren och definiera användaren som VS-kodservern ska köras som.

Om du inte vill skapa en containerkonfigurationsfil själv kommer kommandot Fjärrkontainrar: Lägg till utvecklingskonfigurationsfiler att lägga till en i ditt projekt automatiskt. Du kommer att kunna välja från en lista med förkonfigurerade mallar som du kan anpassa senare.

När du har fått en devcontainer.json-fil i ditt projekt kör du < stark> Fjärrkontainrar: Bygg om behållare kommandot från kommandopaletten. Detta skapar en containeravbildning med den angivna konfigurationen. När byggnaden är klar kör du Fjärrkontainrar: Öppna mappen igen i behållaren för att öppna din nuvarande lokala katalog i en ny utvecklingsbehållare.

Om du använder ett Git-arkiv , är det vanligtvis enklare att klona repo direkt i en container. Fjärrkontainrar: klonförvar i behållarvolym kommandot accepterar en Git URL att klona. Den skapar en ny volym och bifogar den till en dev-containerinstans. Detta gör att du kan arbeta med Git-repor utan att klona dem till ditt lokala filsystem och undvika onödig förorening. VS Code delar automatiskt dina lokala Git-referenser med behållaren.

Konfigurera tillägget

Fjärrkontrollen & # 8211; Containertillägget har flera inställningar som låter dig konfigurera din containerupplevelse. Du hittar dem med kommandot Fjärrbehållare: Inställningar för fjärrbehållare .

Den första samlingen av inställningar gäller dotfiles. Dotfiles hänvisar till konfigurationsfiler som börjar med en punkt (.). Fjärrbehållare kan automatiskt klona ett Git-arkiv med dotfiler i nya behållare, vilket hjälper dig att komma igång med dina vanliga inställningar.

Annons

Lägg till din URL-adress för dotfiles-förvar till inställningen Förvar. Förvaret kommer att klonas till Target Path-sökvägen, som standard är ~/dotfiles. Om du vill köra ett kommando efter att förvaret har klonats, ange det som Installera kommando.

Remote-Containers är som standard att använda docker som binär som utför containerkommandon. Du kan ändra detta till valfri Docker CLI-kompatibel binär med inställningen Docker Path. Om du använder Podman kan du arbeta med dess behållare med hjälp av VS-kod om du anger Podman som detta värde.

Du kan konfigurera standard fjärrtillägg under rubriken Standardtillägg. Klicka på & # 8220; Lägg till objekt & # 8221; att välja en förlängning för att lägga till varje container Detta låter dig säkerställa global tillgänglighet för dina måste-tillägg, även om de inte finns med i en devcontainer.json-fil.

En sista grupp med inställningar gäller Git-konfiguration. När & # 8220; Kopiera Git Config & # 8221; är markerat kommer din lokala .gitconfig-fil automatiskt att kopieras till behållare automatiskt. Om du aktiverar detta säkerställer du att dina åtaganden tillskrivs korrekt de användaruppgifter som du redan använder lokalt.

Konfigurationsplatsen för Git Credential Helper Config & # 8221; inställning styr konfigurationsfilen som nya Git-referenser kommer att skrivas till. Du kan välja från din lokala fil per användare, ~/.gitconfig eller den globala systemplatsen,/etc/gitconfig.

Sammanfattning

Fjärrkontrollen & # 8211; Containertillägg för Visual Studio Code låter dig redigera filer och mappar i Docker-behållare. Det fungerar sömlöst med VS-kodredigeringsfunktionerna, inklusive IntelliSense, katalogindexering, felsökning och tillägg. Internt lanserar VS Code en utvecklingsserver inuti containern så att dess verktyg har full åtkomst till det filsystem de arbetar med.

Annonsering

Det finns flera möjliga användningsfall för denna funktionalitet, med Dockeriserade utvecklingsmiljöer och on-the-fly container redigerar de bästa utmanarna. Medan tanken på att använda containrar för att systematisera utvecklingen har funnits ett tag, gör VS Code det mycket lättare att komma igång genom att erbjuda en IDE-upplevelse som förstår Docker.

Du kan förbereda en Docker-bild som ger utvecklare allt de behöver för att arbeta på ditt system & # 8211; programmeringsspråk, beroenden och bekvämlighetsverktyg. Devs skulle starta en container, ansluta till den från VS-kod och gå vidare med sitt arbete utan att installera någonting (förutom kod) på sin egen maskin. Om ett beroende måste lappas behöver du bara uppdatera den delade Docker-avbildningen och få utvecklare att dra den nya taggen.