Page-level ads

git push すると自動でデプロイしソース管理リポジトリに git push mirror する環境を構築した。 – つまさぽ(妻のサポート)

技術

git push すると自動でデプロイしソース管理リポジトリに git push mirror する環境を構築した。

投稿日:2017年2月9日 更新日:

ws-pc-top

git push すると本番環境に自動デプロイする環境を構築しました。

ローカルの本番環境へgit pushするとソース管理サーバーへgit push –mirrorする環境がうまく作れたので備忘録として残しておきます。

ws-pc-more

 

構成

登場人物

develop machine

  • 開発用マシン(Windows 8.1)
  • /path/to/develop/test にローカルリポジトリ[Z]を配置

deploy server

  • 本番環境サーバー(Ubuntu 16.04 server)
  • /path/to/develop/test-bare にリモートリポジトリ[A]を配置
  • /path/to/develop/test にローカルリポジトリ[X]を配置
  • [X]が公開用ディレクトリ

source server

  • ソース管理サーバー
  • 社内ではRedmineを使っているが、本記事ではgithubに置き換える
  • https://github.com/yourname/test.git [B]にソースを集約する

開発の流れ

  1. develop machine で開発する
  2. [Z]から[A]へ git push origin master する
  3. 自動的に[X]が[A]から git –git-dir=.git pull origin master する
    • pull は master ブランチのみ
    • [A]に他ブランチのpushがあっても[X]には影響がない
  4. 自動的に[A]から[B]へ git –git-dir=test.git fetch –all
  5. 自動的に[A]から[B]へ git –git-dir=test.git push github –mirror
    • –mirror なのでブランチも含めてソース管理サーバーに集約される

開発マシン+ローカルサーバーだけでもソース管理と自動デプロイができますが、ローカルサーバーがクラッシュしたときにソースがまるごと無くなるので、ソース管理サーバーと連携できるようにしました。

続いて、環境構築方法を記します。

参考および補足

本記事はgitを使ったデプロイ方法を参考にしました。

参考記事との違いは、ソース管理サーバーへのpushへの設定が本番環境のリモートリポジトリ[A]が持つことです。

そうすることで、開発者が増えたときにそれぞれの開発環境[Z’]にソースリポジトリ[B]への同期設定をする必要がなくなり、[A]から[Z’]にgit cloneするだけでよくなります。

git deploy 環境構築方法

必要があれば管理者権限で実行(sudoを付けるなど)してください。

ソース管理用リポジトリを作成する

source server でソース管理用のリポジトリを作成します。

ここではgithubで以下のようなリポジトリを作成したとします。

デプロイ用の bareリポジトリを作成する

deploy server でデプロイ用のbareリポジトリを作成します。

デプロイ用bareリポジトリにソース管理用リポジトリを登録する

deploy server で先程作ったソース管理用リポジトリを登録します。

githubのユーザー名はusername、パスワードはpasswordとして登録します。

本番環境を作成する

deploy server で本番環境を作ります。

git hookの設定

deploy server で git hookの設定をします。

以下のように記述します。

post-receive のアクセス権限を変更します。

以上で完了です。

参考:gitでリモートリポジトリを同期する

開発マシンでgit pushしてみる

まずは、開発マシンでgit cloneします。

※ssh接続についてはssh 接続を簡単にする ~/.ssh/configを参考

適当なファイルを作って、git push してみます。

結果

下記のような感じで表示されればOKです。

以上、参考になれば幸いです。

ws-pc-btm

ws-pc-btm-right

-技術
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

VirtualBox でも Paralells Desktop の共有プロファイル設定と同様にユーザーフォルダをホストOSと共有する方法

Parallels Desktop から VirtualBox へ移行しました。 VirtualBox でも Paralells Desktop の共有プロファイル設定と同様にデスクトップやマイドキュ …

旧型Mac に SSDとSSHDを装着しFusion Drive 作成する方法

Macbook Pro 15-inch Late2011 が手に入ったので、大人なカスタマイズをすることにしました。

Parallels Desktop から VirtualBox へ移行した際にゲストOS Windows10 で発生する共有プロファイルエラーの対処法

Parallels Desktop から VirtualBox へ移行しました。 ゲストOSのWindows10にログインするとエラーが発生しましたので、その対策を残しておきます。 有料の Paral …

macOS sierra osx10.12 リカバリUSBインストールメディア作成方法

とても覚えていられないので、MacOS のリカバリUSB作成方法を残しておきます。

Mac Pro 2009 で Gainward GeForce GTX 680 Phantom HDMI オーディオ音声出力を有効にする方法

ヤフオクで念願のMac Pro 2009 を手に入れました。 グラボは GeForce GTX680 ですが、HDMI接続しても音声が出力されません。。。 その対処法を記しておきます。

ws-pc-side-top

ws-pc-side-btm


アフィリエイトのアクセストレード