GNU/Linux >> Znalost Linux >  >> Panels >> Docker

Jak upravit kód v kontejnerech Docker pomocí kódu Visual Studio

Vývoj nebo ladění kódu uvnitř kontejnerů Docker může být složité. Obvykle byste se připojili ke kontejneru a k úpravě souborů používali nástroje shellu. Rozšíření Remote Containers sady Visual Studio Code vám umožňuje otevírat složky uvnitř kontejnerů, takže s nimi můžete pracovat v editoru kódu.

Vzdálený vývoj funguje s Docker Desktop 2.0 a vyšší pro Windows a macOS a Docker Engine 18.06 a vyšší pro Linux. Pokud používáte Windows 10 Home, musíte mít nainstalovanou aktualizaci z dubna 2020, Docker Desktop 2.3 a Windows Subsystem for Linux.

Na straně kontejneru je VS Code kompatibilní s kontejnery x64 i ARM. Můžete používat operační systémy Alpine, Debian, Ubuntu, CentOS a RHEL. Pokud váš základní obraz nefunguje hned po vybalení, měli byste být schopni do něj nainstalovat další balíčky, abyste dokončili připojení.

Začínáme

Spusťte VS Code, stiskněte Ctrl+Shift+P a vyhledejte „rozšíření“. Výběrem položky „Instalovat rozšíření“ vyvolejte postranní panel. V podokně rozšíření vyhledejte „Remote – Containers“ a nainstalujte odpovídající položku.

Po instalaci rozšíření se v levé dolní části stavového řádku objeví nové zelené tlačítko. Klepnutím na toto vyvoláte paletu příkazů předem vyplněnou dostupnými vzdálenými příkazy. Pokud byste se raději vyhýbali používání myši, můžete příkazy najít také stisknutím Ctrl+Shift+P a zadáním „remote“. Rozšíření se objeví i v dalších oblastech uživatelského rozhraní, jako je uvítací stránka a podokno otevření složky.

Chcete-li otevřít svou první dockerizovanou složku, vyvolejte seznam příkazů a vyberte „Připojit k běžícímu kontejneru“. Budete muset potvrdit varování, že kontejner může spustit nedůvěryhodný kód. Měli byste se připojovat pouze ke kontejnerům vytvořeným z obrázků, kterým důvěřujete, protože škodlivý kontejner se souborem pracovního prostoru VS Code by mohl ohrozit váš systém.

VS Code zobrazí seznam kontejnerů Docker běžících ve vašem systému. Vyberte kontejner, ke kterému se chcete připojit. Otevře se nové okno. Spuštění může trvat několik sekund, než VS Code nainstaluje komponenty vzdáleného serveru do kontejneru. Aktivní kontejner se zobrazí v levé dolní části stavového řádku.

Jakmile je okno připraveno, můžete začít pracovat. Kliknutím na tlačítko „Otevřít složku“ v levém podokně zobrazíte výzvu pro výběr souboru. Zobrazí se souborový systém v rámci kontejneru. Přejděte do adresáře, který chcete otevřít, a stiskněte „OK“.

Postranní panel se aktualizuje a zobrazí obsah vybraného adresáře. Kliknutím na libovolný soubor jej otevřete v editoru kódu VS. Nyní můžete provádět změny uvnitř kontejneru, aniž byste museli ručně kopírovat soubory nebo nastavovat připojení k pracovnímu adresáři. To maximalizuje efektivitu při používání dockerizovaného vývojového prostředí nebo ladění nefunkčního kontejneru.

K dispozici je úplná sada funkcí VS Code, včetně dokončování kódu IntelliSense a jeho sady nástrojů pro ladění. Panely, jako je konzola a terminál, se připojí ke vstupním a výstupním tokům kontejneru.

Jak to funguje?

První věc, kterou je třeba na integraci rozpoznat, je, že VS Code změní souborový systém vašeho kontejneru. Do kontejnerů, ke kterým se připojujete, nainstaluje server, který odesílá informace zpět do klienta editoru.

Server monitoruje souborový systém, čte soubory a spouští procesy v kontejneru. To podporuje funkce, jako je debugger VS Code. Editor požádá server, aby spustil váš zdroj, a nechá jej zkontrolovat kód běžící uvnitř kontejneru.

Podobně VS Code nainstaluje kopie vašich dalších rozšíření do kontejneru. To zajišťuje, že mají plný přístup k souborovému systému kontejneru, takže budou fungovat bez nesrovnalostí ve srovnání s místní složkou. Konečným výsledkem je plnohodnotný editor, který funguje transparentně, i když je rozprostřen napříč vaším hostitelem a kontejnery. V závislosti na velikosti vašeho prostředí může nastavení prvního spuštění chvíli trvat, ale kontejnerový server bude uložen do mezipaměti pro další použití.

Vývojové kontejnery

Kromě otevírání souborů ve stávajícím kontejneru vám vzdálený systém umožňuje definovat vývojové kontejnery, které zapouzdřují vaše pracovní prostředí. Takový kontejner by měl obsahovat všechny softwarové závislosti, které byste nainstalovali před místním vývojem aplikace.

Když používáte vývojový kontejner, můžete buď svázat připojení svého pracovního adresáře, nebo použít izolovaný svazek. Druhá možnost zabraňuje znečištění souborového systému a nabízí lepší výkon, protože je nativní pro Docker.

Vývojové kontejnery jsou vytvořeny z .devcontainer/devcontainer.json soubory. Tyto popisují konfiguraci Dockeru a sady Visual Studio, která spouští vaše vývojové prostředí.

{
    "image": "mcr.microsoft.com/vscode/devcontainers/javascript-node:16",
    "extensions": "EditorConfig.EditorConfig",
    "forwardPorts": [3000]
}

Soubor devcontainer.json výše uvedený soubor nastavuje vývojový kontejner, který používá šablonu Node.js společnosti Microsoft. Rozšíření EditorConfig VS Code je povoleno a přidává podporu pro .editorconfig soubory ve vašem pracovním adresáři. Port 3000 je pak mapován z hostitele do kontejneru.

Kontejnerové soubory Dev podporují také několik dalších možností. Můžete nastavit kód VS settings.json hodnoty, přidejte příkaz ke spuštění uvnitř kontejneru a definujte uživatele, pod kterým bude server VS Code spouštět.

Pokud nechcete sami vytvářet konfigurační soubor kontejneru, Remote-Containers:Add Development Configuration Files příkaz přidá jeden do vašeho projektu automaticky. Budete si moci vybrat ze seznamu předem nakonfigurovaných šablon, které si později můžete přizpůsobit.

Jakmile budete mít devcontainer.json soubor ve vašem projektu, spusťte Remote-Containers:Rebuild Container příkaz z palety příkazů. Tím se vytvoří obrázek kontejneru pomocí zadané konfigurace. Po dokončení sestavení spusťte Remote-Containers:Znovu otevřete složku v kontejneru otevřete svůj aktuální místní adresář v novém vývojovém kontejneru.

Pokud používáte úložiště Git, je obvykle jednodušší naklonovat repo přímo do kontejneru. Vzdálené kontejnery:Úložiště klonů ve svazku kontejneru příkaz přijímá adresu URL Git ke klonování. Vytvoří nový svazek a připojí ho k instanci kontejneru pro vývojáře. To vám umožní pracovat na repozitářích Git, aniž byste je klonovali do místního souborového systému, čímž se vyhnete zbytečnému znečištění. VS Code automaticky sdílí vaše místní přihlašovací údaje Git s kontejnerem.

Konfigurace rozšíření

Rozšíření Remote – Containers přichází s několika nastaveními, která vám umožní nakonfigurovat prostředí kontejneru. Najdete je pomocí Vzdálených kontejnerů:Nastavení pro vzdálené kontejnery příkaz.

První sbírka nastavení se týká dotfiles. Dotfiles odkazují na konfigurační soubory, které začínají tečkou (. ). Remote-Containers dokážou automaticky naklonovat úložiště Git souborů dot do nových kontejnerů, což vám pomůže začít s běžnými nastaveními.

Přidejte adresu URL svého úložiště dotfiles do Repository nastavení. Úložiště bude naklonováno do Target Path cesta, která je výchozí ~/dotfiles . Pokud chcete spustit příkaz po naklonování úložiště, zadejte jej jako Install Command .

Ve výchozím nastavení Remote-Containers používá docker jako binární soubor, který provádí příkazy kontejneru. Toto můžete změnit na jakýkoli binární soubor kompatibilní s Docker CLI pomocí Docker Path nastavení. Pokud používáte Podman, zadejte podman protože tato hodnota vám umožní pracovat s jeho kontejnery pomocí VS Code.

Výchozí vzdálená rozšíření můžete nakonfigurovat v části Default Extensions nadpis. Kliknutím na „Přidat položku“ vyberte rozšíření, které chcete přidat do každého kontejneru. To vám umožní zajistit globální dostupnost vašich nezbytných rozšíření, i když nejsou uvedena v devcontainer.json soubor.

Poslední skupina nastavení se týká konfigurace Git. Když je zaškrtnuté „Kopírovat Git Config“, vaše místní .gitconfig soubor se automaticky zkopíruje do kontejnerů. Povolením této možnosti zajistíte, že vaše odevzdání budou správně přiřazena k uživatelským údajům, které již lokálně používáte.

Nastavení „Git Credential Helper Config Location“ řídí konfigurační soubor, do kterého budou zapsána nová pověření Git. Můžete si vybrat z místního souboru pro jednotlivé uživatele ~/.gitconfig nebo globální umístění systému, /etc/gitconfig .

Přehled

Rozšíření Remote – Containers pro Visual Studio Code vám umožňuje upravovat soubory a složky uvnitř kontejnerů Docker. Bezproblémově spolupracuje s funkcemi editoru kódu VS, včetně IntelliSense, indexování adresářů, ladění a rozšíření. Interně VS Code spouští vývojový server uvnitř kontejneru, takže jeho nástroje mají plný přístup k souborovému systému, se kterým pracují.

Existuje několik možných případů použití této funkce, s vývojovými prostředími Dockerized a průběžnými úpravami kontejnerů, které se nejvíce ucházejí. Zatímco nápad Používání kontejnerů k systematizaci vývoje existuje již nějakou dobu, VS Code usnadňuje začátek tím, že nabízí prostředí IDE, které nativně rozumí Dockeru.

Můžete připravit obraz Dockeru, který vývojářům poskytne vše, co potřebují k práci na vašem systému – programovací jazyk, závislosti a nástroje pro pohodlí. Vývojáři by spustili kontejner, připojili se k němu z kódu VS a pokračovali by v práci bez instalace čehokoli (kromě kódu) na svůj vlastní počítač. Pokud je třeba opravit závislost, stačí aktualizovat sdílený obrázek Dockeru a přimět vývojáře, aby stáhli nový tag.


Docker
  1. Jak nasadit kontejner nginx s Dockerem na Linode

  2. Jak zálohovat a obnovovat kontejnery Docker

  3. Jak pozastavit a obnovit kontejnery Docker

  1. Jak spravovat kontejnery Docker? Osvědčené postupy

  2. Jak sdílet data mezi kontejnery Docker

  3. Jak vypsat Docker kontejnery

  1. Jak nainstalovat kód Visual Studio na Ubuntu 18.04

  2. Jak nainstalovat kód Visual Studio na Ubuntu 20.04

  3. Jak nainstalovat kód Visual Studio na CentOS 7