Docker Hubで自動ビルドを指定するときに、いくつかの設定(Type
( 'Branch'または 'Tag')、Name
、Dockerfile Location
およびDocker Tag Name
)を設定できます。しかし、残念ながらそれらのドキュメントは見つかりませんでした。
Type
'Branch'を選択してName
を入力すると、これはGitHub/BitBucketのgitリポジトリからのブランチであり、Docker Tag Name
が作成された画像に割り当てられるタグ。
私は少し遊んでみて、私にはわからないことがいくつかありましたが、私に説明していただければ幸いです。
複数のエントリを追加すると、1つのタグのみが割り当てられます。最初のバージョンではDocker Tag Name
、2番目のバージョンでは 'v1'として 'Branch'、 'master'、 '/'、 'latest'を使用しました。ただし、タグとして使用されるのは「v1」のみです。
Type
'Tag'を使用しても、異なる結果にはなりませんでした。これは、git commitがこの値でタグ付けされている場合にのみイメージを構築する可能性があると思いました。このタイプは何のためですか?
「最新」のタグを最新のビルドに割り当て、イメージをローカルでビルドするときにできるように、古いビルドに対してv1、v2、v3などのスキームを使用する機能を探していました。
自動化されたドッカー画像タグ付けがドッカーハブで利用可能です!私は最近これをいじっていて、私の発見を共有して、このスレッドにジャンプしました(大丈夫だと思います!)
だから私はdockerhubに自動化されたビルドリンクを持つ公開GitHubリポジトリを持っています。 master
ブランチにプッシュするたびに:latest
タグを更新する必要があります。また、GitHubで作成するリリースごとに:X
、:X.Y
、:X.Y.Z
タグを作成してください(GitHubでvX.Y.Z
としてタグ付け)。
これは、ビルド設定構成がこれをサポートするように見える方法です:
そして、テキストでコピーして貼り付けるのが簡単です:
| Type | Name | Dockerfile Location | Docker Tag Name |
|--------|-----------------------------------|---------------------|-----------------|
| Branch | master | / | latest |
| Tag | /^v([0-9]+)\.([0-9]+)\.([0-9]+)$/ | / | {\1} |
| Tag | /^v([0-9]+)\.([0-9]+)\.([0-9]+)$/ | / | {\1}.{\2} |
| Tag | /^v([0-9]+)\.([0-9]+)\.([0-9]+)$/ | / | {\1}.{\2}.{\3} |
お役に立てれば!
これは2つのステップで非常に簡単です...
ステップ1-自動ビルドのリンクをクリックします
手順2-同じDockerリポジトリに複数の自動ビルドを追加する(ほとんどの人は、複数の自動ビルドを追加できることを知りません)、ブループラスボタンをクリックします(下の画像を参照)
上の画像の例では、私は...
githubタグが存在する必要があることに注意してください!
[保存]をクリックしてビルドをトリガーすると、最新のタグ用と0.1.0タグ用の2つのビルドが開始されます。
これが十分に文書化されていないので、あなたが方法を知っている場合は単純です:)ここで完全な答えを提供すると思いました。
Usmanは https://stackoverflow.com/a/26107743/155689 の同様の質問に対する回避策で答えました
基本的に
ご覧のとおり、これを this自動ビルド に対して実行しました
数か月前に、バージョン番号を明示的に提供することについてdockerサポートに問い合わせましたが、その時点ではサポートされていませんでした。
Dockerハブで指定するのは、監視されるgitタグ/ブランチです。ビルドの結果には常にlatest
のタグが付けられます。
「最新」のタグを最新のビルドに割り当てる私の解決策は、自動ビルドで次の構成を使用することです。
| Type | Name | Dockerfile Location | Tag Name |
| Branch | master | / | latest |
マスターにコミットがある場合は常に、タグ「最新」の新しいビルドが作成されます。
数日前に、自動ビルドがブランチ名をタグ名として使用するという問題があったため、「マスター」を持つビルドがいくつか見つかる可能性があります。これは修正されました: https://forums.docker.com/t/automated-builds-not-tagging-latest/68
新しいDocker Hub自動ビルドの場合、Anton Drukhの優れた答えは1つのルールで実現できます
ソースタイプ:タグ
ソース:/^v([0-9.])\.([0-9.])\.([0-9.])$/
Dockerタグ:release-{\1},release-{\1}.{\2},release-{\1}.{\2}.{\3},latest
マスターコミットではなくタグから最新のものを構築しているため、これはアントンの回答とは少し異なります。
私はこの機能をまだ使用していないため間違っている可能性がありますが、今日build settings
タブと2番目のタイプのビルドのtag
を選択すると、自動的に正規表現/.*/
は、すべてのタグを選択します。
テストしたらすぐに更新します。