[PYTHON] Starten Sie mehrere Container im Remote-Container von VS Code, um zwischen Aufgaben zu wechseln

Einführung

Der Remote Container von VSCode ist praktisch, nicht wahr? Es ist am besten, verschiedene Sprachen ausprobieren zu können, ohne die Umgebung des lokalen PCs zu verschmutzen.

Obwohl ich es nur schnell ausprobieren möchte, ist es schwierig, es für jede Sprache festzulegen.

In diesem Beitrag werde ich Ihnen zeigen, wie Sie mit nur einem Start eine Verbindung zu mehreren Containern herstellen.

Es ist auch im offiziellen Dokument geschrieben. Wenn Sie mehr wissen möchten, klicken Sie hier. https://code.visualstudio.com/docs/remote/containers-advanced#_connecting-to-multiple-containers-at-once

Demo-Code-Übersicht

Wir werden uns hier mit Golang- und Python-Containern befassen. . ├── golang │ ├── .devcontainer.json │ └── Dockerfile ├── python │ ├── .devcontainer.json │ └── Dockerfile └── docker-compose.yml

Details zur Einstellungsdatei

  1. docker-compose.yml Das übergeordnete Element des von Remote-Container verwalteten Codes wird in docker-compose.yml beschrieben.

Sie müssen lediglich das Verzeichnis in build.context angeben und den relativen Pfad von dort zur Docker-Datei in die Docker-Datei schreiben.

Wenn Ihnen die Verzeichnisstruktur nicht gefällt, können Sie sie frei ändern.

docker-compose.yml


version: "3"
services:
  golang-container:
    build:
      context: golang 
      dockerfile: Dockerfile
    volumes:
      - .:/workspace:cached
    environment:
      TZ: "Asia/Tokyo"
    command: sleep infinity

  python-container:
    build:
      context: python 
      dockerfile: Dockerfile
    volumes:
      - .:/workspace:cached
    environment:
      TZ: "Asia/Tokyo"
    command: sleep infinity
  1. .devcontainer.json Die Einstellungen für jeden Container sind in .devcontainer.json beschrieben.

Um die Eltern-Kind-Beziehung zu verbinden, stimmen die Namen von dockerComposeFile und service mit denen überein, die in docker-compose.yml definiert sind.

Sie können verhindern, dass andere Sprachen im VS-Code-Fenster angezeigt werden, indem Sie die durch Sprache getrennten Verzeichnisse mit workspaceFolder angeben. (Es ist laut, weil eine Warnung angezeigt wird, wenn es angezeigt wird.)

Es gibt verschiedene Erweiterungen, sodass Sie sie nach Ihren Wünschen anpassen können.

json:.devcontainer.json


{
    "name": "Dev Container Golang Env",
    "dockerComposeFile": "../docker-compose.yml",
    "service": "golang-container",
    "workspaceFolder": "/workspace/golang",
    "extensions": [
      "golang.go",
      "donjayamanne.githistory",
      "eamodio.gitlens",
      "codezombiech.gitignore",
      "mhutchie.git-graph",
      "esbenp.prettier-vscode",
      "coenraads.bracket-pair-colorizer",
      "ionutvmi.path-autocomplete"
    ],
    "terminal.integrated.shellArgs.linux": [
        "-l"
    ],
    "shutdownAction": "stopCompose"
}
  1. Dockerfile Beschreiben Sie die Einstellungen, die Sie für jeden Container verwenden möchten.

Da es wie eine normale Docker-Datei angewendet wird, ist es auch praktisch, die Bibliothek zu installieren.

Hier haben wir das Git-Komplementär-Tool installiert, das jeder liebt.

Dockerfile


FROM golang:buster

WORKDIR /

RUN apt-get update \
 && apt-get install -y --no-install-recommends \
      git \
      openssh-client \
      procps \
      ca-certificates \
      curl \
      unzip \
      gnupg \
      vim \
      wget \
 && rm -rf /var/lib/apt/lists/*

# git
RUN wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -O ~/.git-completion.bash
RUN chmod a+x ~/.git-completion.bash
RUN echo "source ~/.git-completion.bash" >> ~/.bashrc
RUN wget https://raw.githubusercontent.com/git/git/master/contrib/completion/git-prompt.sh -O ~/.git-prompt.sh
RUN chmod a+x ~/.git-prompt.sh
RUN echo "source ~/.git-prompt.sh" >> ~/.bashrc

So starten Sie mehrere Container

  1. Öffnen Sie die VS Code-Befehlspalette und wählen Sie "Remote-Container: Ordner im Container öffnen ..."
  2. Wählen Sie das Verzeichnis aus, das Sie öffnen möchten (diesmal das Golang- oder Python-Verzeichnis).

Wenn Sie wie oben beschrieben arbeiten, indem Sie Remote Container normal starten, werden nicht nur der ausgewählte Container, sondern auch andere in den Einstellungen beschriebene Container erstellt.

Wählen Sie zum Wechseln einfach das Verzeichnis aus, das Sie öffnen möchten, wie in Schritt 1 und 2 beschrieben. Der Container ist beim ersten Start aktiv, sodass Sie die Fenster wechseln und sofort arbeiten können.

Wenn Sie ein separates Fenster wünschen, können Sie ein neues Fenster mit VS-Code erstellen und von dort aus die Schritte 1 und 2 ausführen.

Zusammenfassung

Ich habe vorgestellt, wie mehrere Container mit dem Remote-Container von VS Code gestartet werden. Es gab hier zwei Container, Golang und Python, aber Sie können sie hinzufügen, wie Sie möchten.

Wäre es nicht nützlich, wenn Sie mehrere Sprachen im privaten Repository von git verwalten? Es scheint, dass es auch zur Überprüfung des Betriebs verschiedener Sprachversionen verwendet werden kann.

Der Quellcode ist auf github verfügbar. https://github.com/fumiyakk/demo-multiple-remote-containers

Python ist aufwendig, um Poesie zu verwenden. Ich werde die Entwicklungsumgebung von Python vorstellen, die Poesie und Schwarz kombiniert.

Recommended Posts

Starten Sie mehrere Container im Remote-Container von VS Code, um zwischen Aufgaben zu wechseln
[Januar 2020] Beginnen wir den explosiven "Entwicklungscontainer" ernsthaft mit dem Remote Container von VS Code.
[Java] So wechseln Sie zwischen mehreren Java-Versionen
[Django] Verwenden Sie VS Code + Remote-Container, um schnell eine Entwicklungsumgebung für Django-Container (Docker) zu erstellen.
So entwickeln Sie Container auf Remote-Servern mit VS Code Remote-Containern