2016-07-03 11 views
9

私はアプリケーションを実行するDocker Hubコンテナを持っています。通常、ソースgitリポジトリをクローンしてアプリケーションを実行しますが、特定のバージョンを実行したい場合、アプリケーションはさまざまなリリースのタグを付けています。たとえば、私はできるのですDockerハブのバージョンにタグを付けるベストプラクティスは何ですか

Docker Hubの管理者として、私はそのコンテナでソフトウェアのリリースをミラーリングしたいと思います。リリースが出たときに手作業で行う以外に他のオプションはありますか?

今の私のDockerfileはこのようなものが含まれます。この例では

ENV APP_VER=2.0.0 
RUN git clone ...; git checkout ${APP_VER} 

を、私は2.1.0にAPP_VERを設定し、ドッカーハブがいることをサポートしているドッキングウィンドウのファイルのタグ付けされた枝を維持するだろうが、レポを変更すると、各ブランチのDockerfileをどのように変更しないのかは不明です。

+1

Githubでタグ付けされている場合、ファイルはタグ付きファイルにリンクするので変更されません。たとえば、[nginx](https://hub.docker.com/r/_/nginx/)。 – ldg

+0

うん、あなたはnginxがやっていたように見えるものである各バージョンのファイルを変更する必要があります – Lizbeth

答えて

2

あなたは、ドッカーハブの自動ビルドを経由してビルド設定に記述するあなたのGithubタグドッカータグ名とのパターンマッチングを設定されているものを行うことができるはずです。ワイルドカードと変数{sourceref} `、"ソースブランチ/タグ名を参照する "を使用することができます。

Githubタグと一致するDockerタグを使用して新しい画像をプッシュすると、一致するDockerファイルがプルされます。以前のタグは変更されません。あなたが言及したように、誰かが参考にタグを使用して、古いドッカーイメージと一致Githubのコードを引くことができます。

ENV APP_VER=2.1.0 
RUN git clone ... app.git; git -C app checkout ${APP_VER} 

をこの場合、それはあなたがドッカーハブが値と各タグに一致するように設定されているものと想定します(Dockerの画像とGithub)は2.1.0

私は本当にあなたがSVNに慣れている場合、混乱の一部であるかもしれない "各支店"が何を意味するか分からない。 gitでは、タグはブランチに束縛されるのではなく、特定のコミット(または〜の時点)に関連付けられているので、そのタグを取得するときに、そのコミットがあったときと同じバージョンのコードを常に使用します製。 (通常、リリースと同じ時間にカットされました)

関連する問題