🐳

開発環境を毎回準備するのが面倒なのでDevContainer化した

に公開

概要

開発環境を用意するたびにLinterをインストールする手間を省くため、DevContainerの定義ファイルからDockerイメージを作成するようにしました。

作成したDevContainerはGitHubで公開しています。
https://github.com/jay34986/DevContainerStaticAnalysis/tree/main

環境

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で表示する設定にしています。
https://github.com/jay34986/DevContainerStaticAnalysis/blob/main/.devcontainer/devcontainer.json#L27-L29

MarkdownLintの1行あたりの文字数制限を80→140文字に緩和しています。
https://github.com/jay34986/DevContainerStaticAnalysis/blob/main/.devcontainer/devcontainer.json#L30-L36

DevContainerの起動方法

  1. VS CodeにDev Containers拡張機能をインストールし、再起動します。

    code --install-extension ms-vscode-remote.remote-containers
    
  2. リポジトリをダウンロードし、VS Codeでフォルダを開きます。

  3. VS Code左下の「Open a Remote Window」をクリックします。
    Open a Remote Window

  4. 「Reopen in Container」をクリックします。
    Reopen in Container

Discussion