
Dockle - コンテナイメージのセキュリティLinter、ベストプラクティスなDockerイメージの構築を支援、すぐに始められます
Dockle は以下を支援します:
「[インストール](#installation)」と「[一般的な例](#common-examples)」を参照してください。
<img src="https://assets.kitploit.com/production/public/readmes/4137/343598bd4d53296c6d6d23acde8c2917d5727f03e7b3a34c1ff0865c435bb974.png" width="800">
# チェックポイントの比較
<img src="https://assets.kitploit.com/production/public/readmes/4137/4f4835c3a5fd70f436d9d8ea656fd8a521112fece4e35977288064d3f6f4510a.png" width="800">
<img src="https://assets.kitploit.com/production/public/readmes/4137/7bee9da0b061957af6a175a3b975dca82813c27f72ab6921dfe8ab2d6747322b.png" width="800">
# 目次
- [機能](#features)
- [比較](#comparison)
- [インストール](#installation)
- [Homebrew(Mac OS X / Linux および WSL)](#homebrew-mac-os-x--linux-and-wsl)
- [RHEL/CentOS](#rhelcentos)
- [Debian/Ubuntu](#debianubuntu)
- [Arch Linux](#arch-linux)
- [Windows](#windows)
- [Microsoft PowerShell 7](#microsoft-powershell-7)
- [バイナリ](#binary)
- [asdf](#asdf)
- [mise](#mise)
- [ソースから](#from-source)
- [Docker を使用](#use-docker)
- [クイックスタート](#quick-start)
- [基本](#basic)
- [Docker](#docker)
- [チェックポイントの概要](#checkpoint-summary)
- [一般的な例](#common-examples)
- [イメージのスキャン](#scan-an-image)
- [イメージファイルのスキャン](#scan-an-image-file)
- [JSON 形式で結果を取得または保存](#get-or-save-the-results-as-json)
- [SARIF 形式で結果を取得または保存](#get-or-save-the-results-as-sarif)
- [終了コードの指定](#specify-exit-code)
- [終了レベルの指定](#specify-exit-level)
- [指定したチェックポイントを無視](#ignore-the-specified-checkpoints)
- [不審な `環境変数` / `ファイル` / `ファイル拡張子` を受け入れる](#accept-suspicious-environment-variables--files--file-extensions)
- [不審な `環境変数` / `ファイル` / `ファイル拡張子` を拒否](#reject-suspicious-environment-variables--files--file-extensions)
- [継続的インテグレーション(CI)](#continuous-integration-ci)
- [GitHub Action](#github-action)
- [Travis CI](#travis-ci)
- [CircleCI](#circleci)
- [GitLab CI](#gitlab-ci)
- [プライベート Docker レジストリの認証](#authorization-for-private-docker-registry)
- [Docker Hub](#docker-hub)
- [Amazon ECR(Elastic Container Registry)](#amazon-ecr-elastic-container-registry)
- [GCR(Google Container Registry)](#gcr-google-container-registry)
- [セルフホストレジストリ(BasicAuth)](#self-hosted-registry-basicauth)
- [コントリビューター](#contributors)
- [コードコントリビューター](#code-contributors)
- [資金提供者](#financial-contributors)
- [個人](#individuals)
- [組織](#organizations)
- [ライセンス](#license)
- [著者](#author)
# 機能
- コンテナの脆弱性を検出
- ベストプラクティスの Dockerfile 作成を支援
- シンプルな使い方
- イメージ名のみを指定
- 「[クイックスタート](#quick-start)」と「[一般的な例](#common-examples)」を参照
- CIS ベンチマーク対応
- 高精度
- DevSecOps
- Travis CI、CircleCI、Jenkins などの CI に最適
- 「[CI の例](#continuous-integration-ci)」を参照
# 比較
| | [Dockle](https://github.com/goodwithtech/dockle) | [Hadolint](https://github.com/hadolint/hadolint) | [Docker Bench for Security](https://github.com/docker/docker-bench-security) | [Clair](https://github.com/coreos/clair) |
|--- |---:|---:|---:|---:|
| 対象 | イメージ | Dockerfile | ホスト<br/>Docker デーモン<br/>イメージ<br/>コンテナランタイム | イメージ |
| 実行方法 | バイナリ | バイナリ | シェルスクリプト | バイナリ |
| 依存関係 | なし | なし | 一部依存あり | なし |
| CI での利用 | ✓ | ✓ | × | × |
| 目的 | セキュリティ監査<br/>Dockerfile Lint | Dockerfile Lint | セキュリティ監査<br/>Dockerfile Lint | 脆弱性スキャン |
# インストール
## Homebrew(Mac OS X / Linux および WSL)
[Mac OS X](https://brew.sh/) または [Linux と WSL(Windows Subsystem for Linux)](https://docs.brew.sh/Homebrew-on-Linux) で Homebrew を使用できます。```bash
$ brew install goodwithtech/r/dockle
VERSION=$(
curl --silent "https://api.github.com/repos/goodwithtech/dockle/releases/latest" |
grep '"tag_name":' |
sed -E 's/."v([^"]+)"./\1/'
) && rpm -ivh https://github.com/goodwithtech/dockle/releases/download/v${VERSION}/dockle_${VERSION}_Linux-64bit.rpm
## Debian/Ubuntu```bash
VERSION=$(
curl --silent "https://api.github.com/repos/goodwithtech/dockle/releases/latest" | \
grep '"tag_name":' | \
sed -E 's/.*"v([^"]+)".*/\1/' \
) && curl -L -o dockle.deb https://github.com/goodwithtech/dockle/releases/download/v${VERSION}/dockle_${VERSION}_Linux-64bit.deb
$ sudo dpkg -i dockle.deb && rm dockle.deb
dockle は、Arch User Repository から dockle または dockle-bin パッケージを使ってインストールできます。```
git clone https://aur.archlinux.org/dockle-bin.git
cd dockle-bin
makepkg -sri
## Windows```bash
VERSION=$(
curl --silent "https://api.github.com/repos/goodwithtech/dockle/releases/latest" | \
grep '"tag_name":' | \
sed -E 's/.*"v([^"]+)".*/\1/' \
) && curl -L -o dockle.zip https://github.com/goodwithtech/dockle/releases/download/v${VERSION}/dockle_${VERSION}_Windows-64bit.zip
$ unzip dockle.zip && rm dockle.zip
$ ./dockle.exe [IMAGE_NAME]
if (((Invoke-WebRequest "https://api.github.com/repos/goodwithtech/dockle/releases/latest").Content) -match '"tag_name":"v(?[^"]+)"') { $VERSION=$Matches.ver && Invoke-WebRequest "https://github.com/goodwithtech/dockle/releases/download/v${VERSION}/dockle_${VERSION}_Windows-64bit.zip" -OutFile dockle.zip && Expand-Archive dockle.zip && Remove-Item dockle.zip }
## バイナリ
最新バージョンのバイナリは[リリースページ](https://github.com/goodwithtech/dockle/releases/latest)から入手できます。
ご自身のオペレーティングシステム/アーキテクチャ向けのアーカイブファイルをダウンロードしてください。アーカイブを解凍し、バイナリを`$PATH`が通っている場所(UNIX系システムでは`/usr/local/bin`など)に配置します。
- 注:実行権限が有効になっていることを確認してください。(`chmod +x dockle`)
## asdf
dockleは[asdfバージョンマネージャー](https://asdf-vm.com/)と、この[プラグイン](https://github.com/mathew-fleisch/asdf-dockle)を使用してインストールできます。これにより、GitHubリリースバイナリのさまざまなバージョンのインストール(および切り替え)が自動化されます。asdfが既にインストールされている場合、以下のコマンドを実行してdockleをインストールします:```bash
# Add dockle plugin
asdf plugin add dockle
# Show all installable versions
asdf list-all dockle
# Install specific version
asdf install dockle latest
# Set a version globally (on your ~/.tool-versions file)
asdf global dockle latest
# Now dockle commands are available
dockle --version
mise(多言語ツールバージョンマネージャー)を使ってdockleをインストールできます。miseがすでにインストールされている場合、以下のコマンドを実行してdockleをインストールしてください:```bash
mise ls-remote dockle
mise install dockle@latest
mise use -g dockle@latest
dockle --version
## ソースから```bash
$ GO111MODULE=off go get github.com/goodwithtech/dockle/cmd/dockle
$ cd $GOPATH/src/github.com/goodwithtech/dockle && GO111MODULE=on go build -o $GOPATH/bin/dockle cmd/dockle/main.go