私はcapistrano 3の仕事を書いています。私は現在のコミットを取得する必要があります。どうすればそれを読むことができますか?そのための変数はありますか?Capistrano get git commit sha1
私はいくつかのファイルでfetch(:sha1)
を見ましたが、これは私のために働いていません。
私は、ドッキングウィンドウコンテナに展開しています、と
私はcapistrano 3の仕事を書いています。私は現在のコミットを取得する必要があります。どうすればそれを読むことができますか?そのための変数はありますか?Capistrano get git commit sha1
私はいくつかのファイルでfetch(:sha1)
を見ましたが、これは私のために働いていません。
私は、ドッキングウィンドウコンテナに展開しています、と
カピストラーノは、ファイルを作成します(すでに現在のSHA1に対応する画像がある場合に、理想的には、展開をスキップ)私は、現在のSHA1で画像をタグ付けする必要がありますgitリビジョンを含む展開されたフォルダにあります。そのファイルを作成するタスクを見て、それがどのようにリビジョンを取得するかを見ることができます:https://github.com/capistrano/capistrano/blob/master/lib/capistrano/tasks/deploy.rake#L224
したがって、fetch(:current_revision)
からリビジョンを取得しています。 gitの特定のタスクに
それが設定されている場合は、私たちが見ることができます:サイドノートとしてhttps://github.com/capistrano/capistrano/blob/master/lib/capistrano/scm/tasks/git.rake#L62
を、カピストラーノは、おそらくあなたがやろうとしているもののための最高のツールではありません。 Capistranoは同じサーバーへの展開を繰り返し行う場合に便利です。 Dockerは本質的にコードを含んでいる展開可能なコンテナを構築しています。
current_revision
がバージョン管理プラグインとIドンに委任されhttps://stackoverflow.com/a/39459945/3042016
カピストラーノ3を使用バージョン管理アプリケーションのプラグインシステムを使用している(gitの、SVN、等):詳細はここで回答を見ます「Tは汚いソリューションは
set :current_revision, (lambda do
`git rev-list --max-count=1 #{fetch(:branch)}`
end)
だろう一方で...それにアクセスする方法を
を理解しかし、私は代わりに、右からタスクを起動するために管理します、良い解決策を待っていますSCM pl ugin
ありがとうございました。私は確かにそれらの答えを見たが、私は私の流れが彼らとは少し違うと信じている。私は最初にカピストラノの外に、アプリなしでローカルに "ベースイメージ"を構築しています。それから私はキャップでこのイメージから始まったコンテナに展開しています。さらに、同じコンテナに配備されてスピードアップされます。同じコンテナへの繰り返しの展開。 新しいデプロイメント私はECSクラスタにプッシュして展開できる新しいイメージもコミットしています。カピストラーノの公正使用のように聞こえる? –
Huh。私はそのワークフローについて聞いたことがありません。私はDockerのエキスパート/ユーザーではないので、それが正しいかどうかについてはコメントできません。 –
'fetch(:current_revision)'はあなたの質問に答えますか? –