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イメージにセマンティックバージョニングを適用し、開発・ステージング・本番環境で一貫したイメージタグを確保したい場合。