イメージは本番へ行く:最小、非 root、署名付き — 交渉の余地なし。
digest 固定のマルチステージ Dockerfile、非 root、レイヤーにシークレットなし、SBOM、ブロックするスキャン、cosign 署名。コンテナは一切の特権なしで起動する。
$ schematize install docker譲れない基準
「速くするため」に無効化しない。完全な一覧はスキルに。
digest で固定したベース
FROM image:tag@sha256 とし、可変タグや latest は使わない。digest の更新は Renovate か Dependabot が、スキャン付きの PR で行う。
数値 UID の非 root
最終ステージで USER 10001:10001 を指定する。USER がなければコンテナは root で動く。
シークレットは ARG・ENV・レイヤーに入れない
ビルド用シークレットは RUN --mount=type=secret のみ、実行時は起動時に渡す。COPY .env と秘密鍵は禁止。
最小のマルチステージイメージ
ツールチェーンはビルドステージに留め、最終イメージにはバイナリかランタイムだけを入れる。.dockerignore で .env と .git を除外する。
出荷時の来歴
push 時に SBOM と provenance を付け、HIGH/CRITICAL でスキャンを失敗させ、digest に対する cosign 署名を admission で検証する。
不変タグと digest によるデプロイ
タグは git の sha、デプロイは digest を参照、デプロイ用レジストリに latest は置かず、ロールバックは前の digest の再デプロイ。
特権のないコンテナ
read_only、cap_drop ALL、no-new-privileges、リソース上限。--privileged、docker.sock のマウント、net=host は使わない。
コマンド
.claude/commands/ にインストール。いつでも /docker-help を実行。
/docker-build例をもとにスタック用の Dockerfile を生成・調整し、ゲートを通ることを示す。/docker-ccContext compact:コンテキストとチェックリストをアーカイブに書き出し、/compact を実行。/docker-claude常時オンの Docker 用 CLAUDE.md をルートに作成またはマージ(他スキルのブロックは上書きしない)。/docker-composedev/hml 用 compose を監査または生成:profiles、healthcheck、閉じたデータベース、.env を git の外へ。/docker-handoffコンパクトせずにコンテキストの handoff を作成 — セッション終了やタスク切り替え。/docker-hardenイメージとランタイムを堅牢化:最小ベース、非 root、read-only、cap_drop、上限設定。/docker-helpすべてのコマンドを一覧表示。/docker-load規範の全文を強制ロード:Dockerfile、サプライチェーン、ランタイム、compose、言語別。/docker-reviewDockerfile と compose を基準に照らしてレビュー:2 つのゲート(あれば hadolint も)を実行し、機械が読めない部分を読む。/docker-scanブロックするスキャン、SBOM、provenance、署名と検証(trivy、grype または scout、cosign)。AI エージェント向け
人手を介さずにインストール。メタデータは llms.txt。
- 実行: git clone https://github.com/schematizeme/skill-docker.git && ./skill-docker/install.sh
- またはダウンロード: https://github.com/schematizeme/skill-docker/releases/latest/download/skill-docker.zip を .claude/skills/ に展開
- assets/CLAUDE.md をリポジトリのルートにコピー(常時オンのルール)。
- /docker-help で確認。
ディスカッション
読み込み中…