🐳
開発環境を毎回準備するのが面倒なのでDevContainer化した
概要
開発環境を用意するたびにLinterをインストールする手間を省くため、DevContainerの定義ファイルからDockerイメージを作成するようにしました。
作成したDevContainerはGitHubで公開しています。
環境
DevContainerのベースイメージ
Amazon Linux 2023のminimalイメージ(public.ecr.aws/amazonlinux/amazonlinux:2023.7.20250414.0-minimal)を使用しています。
DevContainer内でインストールするソフトウェア
curlでダウンロード
以下のLinterやCLIは配布バイナリをダウンロードし、/usr/local/binに配置しています。
ソフトウェア | バージョン | 備考 |
---|---|---|
actionlint | 1.7.7 | GitHub Actions用Linter |
awscli | 2.26.4 | AWS CLI |
ghalint | 1.3.0 | GitHub Actions用Linter |
hadolint | 2.12.0 | Dockerfile用Linter |
shellcheck | 0.8.0 | Bash用Linter |
npmでインストール
ソフトウェア | バージョン | 備考 |
---|---|---|
markdownlint-cli2 | 0.17.2 | Markdown用Linter |
SecretLint | 9.3.1 | シークレット検出ツール |
pipxでインストール(Python 3.12.9)
ソフトウェア | バージョン | 備考 |
---|---|---|
cfn-lint | 1.34.1 | CloudFormation用Linter |
yamllint | 1.37.0 | YAML用Linter |
VS Code拡張機能
上記Linterに対応するVS Code拡張機能、および日本語化やGitHub関連の拡張機能をインストールしています。
拡張機能 | バージョン | 備考 |
---|---|---|
amazonwebservices.aws-toolkit-vscode | 3.53.0 | AWS拡張 |
aws-scripting-guy.cform | 0.0.24 | CloudFormation拡張 |
DavidAnson.vscode-markdownlint | 0.59.0 | Markdown Linter |
exiasr.hadolint | 1.1.2 | Dockerfile Linter |
github.vscode-github-actions | 0.27.1 | GitHub Actions拡張 |
github.copilot | 1.297.0 | GitHub Copilot |
github.copilot-chat | 0.26.2 | Copilot Chat |
kddejong.vscode-cfn-lint | 0.26.4 | CloudFormation Linter |
mechatroner.rainbow-csv | 3.19.0 | CSV拡張 |
ms-ceintl.vscode-language-pack-ja | 1.99.2025040209 | 日本語化 |
redhat.vscode-yaml | 1.17.0 | YAML拡張 |
timonwong.shellcheck | 0.37.3 | Bash Linter |
VS Codeの設定
SecretLintをGitのpre-commitフックで利用するため、.gitディレクトリをVS Codeで表示する設定にしています。
MarkdownLintの1行あたりの文字数制限を80→140文字に緩和しています。
DevContainerの起動方法
-
VS CodeにDev Containers拡張機能をインストールし、再起動します。
code --install-extension ms-vscode-remote.remote-containers
-
リポジトリをダウンロードし、VS Codeでフォルダを開きます。
-
VS Code左下の「Open a Remote Window」をクリックします。
-
「Reopen in Container」をクリックします。
Discussion