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

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

関連記事

Dokuwikiをロリポップ!にインストールしてみた。

はじめに 世の中、2chからのWiki誘導が流行っているようなので、Wikiサイトについて調べてみました。 レンタルウィキサービスもたくさんあるようなのですが、アフィリエイトに関して制約があるらしい。 …

便利すぎる QuickRes v4.2 のショートカット

Macbook Air の解像度を限度以上に設定できる便利アプリQuickRes! その解像度を切り替えるショートカットをすぐに忘れるので、備忘録として残しておきます。 ちなみに、QuickRes に …

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

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

flickr フリッカー

Flickr(フリッカー)公式アプリのダウンロードからのアカウント登録 with iphone6 Plus

はじめに データバックアップの重要性 先日、妻のiphoneのデータが消失しました。 きっかけはiphone5からiphone6へ買い替えたからです。 前日にMacbook AirのiTunesでバッ …

GTX680 の ROM を書き換えて、起動時のキーコンビネーションで呼び出す機能の画面を表示できるようにした。Mac Pro 2009

先日、念願のMac Proを入手しました。 カスタマイズ性が高く、最新OS X 10.12 MacOS Sierra をインストールできるMac Pro 2009、2010、2012 はまさに今が買い …

ws-pc-side-top

ws-pc-side-btm

通販でポイントがたまる!
たまったポイントは現金振込み!
今ならこちらからのご入会で30ptプレゼント!

ママの生活必需品|ハピタス