0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Docker+VSCode】Devcontainerの最小構成テンプレート

Last updated at Posted at 2024-10-12

概要

VSCodeでDockerDevcontainerの最小構成テンプレートです。
以下の方に有用だと思います。

  • Devcontainerのためだけに、Dockerfiledocker-compose.ymlを二重で作成している方
  • 検証用や勉強用にとりあえず早く環境を作りたい方

ディレクトリ構成

.tree 
├── .devcontainer
│   └── devcontainer.json
├── Dockerfile
├── app
│   └── index.html
└── docker-compose.yml

docker-compose.yml

version: "3"
services:
  app:
    build: .
    volumes:
      - .:/src
    tty: true

※ docker-compose.ymlの説明については省略します。

.devcontainer/devcontainer.json

{
  "dockerComposeFile": "../docker-compose.yml",
  "service": "app",
  "workspaceFolder": "/src",
  "customizations": {
    "vscode": {
      "extensions": [
        "GitHub.copilot",
      ]
    }
  }
}

以下に.devcontainer/devcontainer.jsonの各定義について説明します。

  1. 以下で参照するdocker-compose.ymlのpathを指定します。

      "dockerComposeFile": "../docker-compose.yml",
    

     

  2. 以下でdocker-compose.ymlにて定義したサービスを指定します。
    これにより、Devcontainerでどのサービスで作業をするかを指定できます。
    今回はappサービスを定義したので、appを指定しています。

      "service": "app",
    

     

  3. 以下で、Devcontainerでコンテナを起動した際に最初に開くディレクトリを指定します。
    今回はdocker-compose.ymlにてコンテナ内の/srcディレクトリにバインドマウントするように設定しているため、/srcを指定しています。

      "workspaceFolder": "/src",
    

     

  4. 以下で、Devcontainerでコンテナを起動した際にインストールしたい任意のVSCode拡張機能を指定します。
    今回はGitHub.copilotを指定しています。

      "customizations": {
        "vscode": {
          "extensions": [
            "GitHub.copilot",
          ]
        }
      }
    

※ 追加方法はこんな感じでGUIから追加できます。

image.png

実用例

以下、私がUdemyのReact講座を受講した際に、速攻で構築した実用例です。

.devcontainer/devcontainer.json

{
  "dockerComposeFile": "../docker-compose.yml",
  "service": "app",
  "workspaceFolder": "/src",
  "customizations": {
    "vscode": {
      "extensions": [
        "GitHub.copilot",
        "ritwickdey.LiveServer"
      ]
    }
  },
}

docker-compose.yml

version: '3'
services:
  app:
    image: node:22-bookworm
    ports:
      - "3000:3000"
    volumes:
      - .:/src
    entrypoint: tail -f /dev/null

以上!!

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?