Azure開発のためのVS Code Dev Container
Introduction
Azure開発プロジェクトにおいて、効率的かつ一貫性のある開発環境を構築することは非常に重要である。Visual Studio Code (VS Code) の Dev Container 機能を活用することで、Azure CLIやBicepなどのツールが組み込まれたカスタマイズされた開発環境を構築できる。
Dev Containerとは
Dev Containerは、Dockerコンテナを利用して隔離された開発環境を作成するためのVS Codeの機能である。これにより、様々なプロジェクトに対して、一貫性と再現性のある開発環境を提供できる。
環境構築の手順
1. ベースイメージの選定: Ubuntu 22.04 をベースイメージとして使用する。
2. 必要なツールのインストール: Dockerfile に Azure CLI と Bicep のインストール手順を記述する。
3. VS Code 拡張機能の設定: Azure関連のVS Code拡張機能を devcontainer.json に定義する。
4. その他のツールの組み込み: git のような追加のツールも Dockerfile でインストールする。
Dockerfileの作成
以下は、Ubuntu 22.04 をベースに、Azure CLI、Bicep、および git をインストールするための Dockerfile の例である。
code:Dockerfile
FROM --platform=linux/amd64 ubuntu:22.04
RUN apt-get update && apt-get install -y \
curl \
lsb-release \
gnupg \
software-properties-common \
git \
&& rm -rf /var/lib/apt/lists/*
RUN az bicep install
※ Base Imageに --platform=linux/amd64 を指定しておかないとM1系統のMacでNative Libraryの参照エラーが起きるため、明示的に指定する必要がある。
devcontainer.jsonの設定
devcontainer.json では、作成したDockerイメージの使用、必要な拡張機能の定義、その他の設定を行う。
code:devcontainer.json
{
"name": "Ubuntu with Azure CLI and Bicep",
"build": {
"dockerfile": "Dockerfile",
"context": "."
},
"remoteUser": "root",
"extensions": [
"ms-azuretools.vscode-azureappservice",
"ms-azuretools.vscode-azurefunctions",
"ms-azuretools.vscode-azurestorage",
"ms-azuretools.vscode-azureresourcegroups"
],
"mounts": [
"source=/var/run/docker.sock,target=/var/run/docker.sock,type=bind"
],
"runArgs": [
"--cap-add=SYS_PTRACE",
"--security-opt", "seccomp=unconfined"
]
}
まとめ
このように、Dev Containerを使用することで、Azure開発に必要なツールや設定が組み込まれた一貫した開発環境を容易に構築できる。開発者はこれにより、環境構築に伴う時間と労力を削減し、本質的な開発作業に集中できるようになる。