プロジェクトごとに違う Python / Node / Ruby のバージョン、.env のリーク事故 ── ローカル開発環境を綺麗に保つ道具を整理します。
1. 推奨セット
- mise(旧 rtx):多言語バージョンマネージャ、asdf 互換、Rust 製で速い
- direnv:ディレクトリごとに環境変数を自動切替
- / devcontainer:OS レベルの隔離、VSCode との統合◎
- uv:Python の pip + venv の Rust 実装、爆速
- git-secrets / detect-secrets:機密情報の commit 防止
2. プロジェクト雛形
プロジェクト初期化テンプレ
Bash
# .mise.toml で Python/Node を固定cat > .mise.toml <<'EOF'[tools]python = "3.12"node = "22"uv = "latest"EOF
# .envrc で環境変数cat > .envrc <<'EOF'export DATABASE_URL=postgres://localhost/devexport ANTHROPIC_API_KEY=$(cat ~/.secrets/anthropic.key)layout python # venv を自動アクティベートEOF
direnv allowmise install # ツール一括インストールuv pip install -r requirements.txt3. devcontainer (VSCode 連携)
.devcontainer/devcontainer.json
JSON
{ "name": "Python Project", "image": "mcr.microsoft.com/devcontainers/python:3.12", "features": { "ghcr.io/devcontainers/features/node:1": { "version": "22" }, "ghcr.io/devcontainers/features/docker-in-docker:2": {} }, "postCreateCommand": "uv pip install -r requirements.txt", "customizations": { "vscode": { "extensions": ["ms-python.python", "charliermarsh.ruff"] } }}4. 機密情報の漏洩防止
- .gitignore に .env / secrets/ を必ず追加
- git-secrets / detect-secrets を pre-commit hook に
- API キーは環境変数 or 1Password CLI から取得
- SOPS / SealedSecrets で暗号化 commit (チーム共有 OK)
5. よくある落とし穴
- Python venv の活性化忘れ: direnv の layout python で自動化
- Node のバージョン違いでビルド失敗: .mise.toml で固定
- .env を git commit: 一度やったら API キー全部ローテート
- Mac と Linux で違う挙動: devcontainer で統一
- Docker のイメージサイズ肥大: multi-stage build で最終イメージを小さく
ふくふくの進め方
社内プロジェクト雛形として配布、新規プロジェクトの立ち上げが 1 日で済む状態を作ります。Python / Node / Go の主要 stack でテンプレ用意済み。
次回予告
EP.08 は 運用の道具:k9s / Stern / Lens。
この記事の感想を教えてください
あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。