semantic-releaseによるDockerイメージリリース

semantic-releaseを使用してDockerイメージのビルドと公開を自動化。@semantic-release/execでセマンティックバージョンタグ付きDockerイメージをビルド、タグ付け、プッシュ。

Advanced Configuration

詳細な説明

Dockerイメージリリースの自動化

semantic-releaseは@semantic-release/execプラグインを使用してリリースライフサイクル中にDockerのビルドとプッシュコマンドを実行し、Dockerイメージのバージョニングを自動化できます。

設定

{
  "branches": ["main"],
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    ["@semantic-release/exec", {
      "prepareCmd": "docker build -t myorg/myapp:${nextRelease.version} -t myorg/myapp:latest .",
      "publishCmd": "docker push myorg/myapp:${nextRelease.version} && docker push myorg/myapp:latest"
    }],
    ["@semantic-release/npm", {
      "npmPublish": false
    }],
    "@semantic-release/github"
  ]
}

バージョンタグ

${nextRelease.version}テンプレート変数は決定されたバージョン(例:1.2.3)に置き換えられます。以下のようなDockerタグが作成されます:

  • myorg/myapp:1.2.3 — 特定バージョン
  • myorg/myapp:latest — 常に最新リリースを指す

npmPublish: false付きnpmプラグイン

npmプラグインをnpmPublish: falseで含めると、npmに公開せずにpackage.jsonのバージョン番号を更新します。DockerイメージのバージョンとパッケージJsonに記録されたバージョンの同期を保ちます。

ユースケース

コンテナ化されたアプリケーションをデプロイするチームで、Dockerイメージにセマンティックバージョニングを適用し、開発・ステージング・本番環境で一貫したイメージタグを確保したい場合。

試してみる — Semantic Release Config Builder

フルツールを開く