🐳
開発環境を毎回準備するのが面倒なので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