githubライクなツールgitbucketをdockerで起動する

gitbucketがあまりにもgithubすぎてもう手放せない

githubはプライベートで運用しようとすると、お金が必要になっちゃいます。
本格的に事業で使うなら、その対価を考えると、githubが良いのでしょうけれども、個人で遊ぶにはちと辛い。

そこで、githubで活躍できるようになるよう、プライベートgithubのgitbucketでめいいっぱい練習しましょう!
という事で、前置きはこれくらいにして、以下のコマンドを実行すると動きます。

dockerホストの /pathto/gitbucket-data ディレクトリに永続化データが保存されます。
※ pathtoの所は保存したいディレクトリを事前に作っておくなりしてください。

WEBのアクセスは http://YOURHOST:8080/ でID/PASSはroot/rootとなります。

初めはアカウントの作成を行いましょう!
29418はsshでのgit利用になります。

画面は本当にgithubそっくりなんです!pull requestもWEB-UIからできちゃってホントコレいいわぁw

前回 gitprep を紹介させてもらいましたが、動作の軽さ手軽さではgitprep、githubにより近いのはgitbucketという感じで使い分けるのもありかもしれません。

gitの使い方はこちら(サルでもわかるGit入門)が大変わかりやすく説明されておられます。

dockerでgithubライクなサーバ(gitprep)を構築する

環境

ubuntu15.04
dockerがインストールされている状態
dockerコンテナのOSはcentos6.6を利用
github互換サーバに gitprep を利用

概要

  1. docker pullで centos6を取得する
  2. github互換サーバ用のDockerfileを作成する
  3. フロントにnginxでWebサーバを起動しEXPOSEでポートをつなぐ

手順

  1. docker pullで centos6を取得する
    jdeathe/centos-sshがcentos6.6のイメージによさそうだったので選択
  2. github互換サーバ用のDockerfileを作成する

    ココで、 -p で 10020番ポートをホストOSとつなぐ必要は無し
    –name に指定した名前が重要となる。後で出てくるfrontサーバは、このnameに対してProxyの接続を行う。
  3. フロントにnginxでWebサーバを起動しEXPOSEでポートをつなぐ

    これで、ホストOSの80番ポート → frontコンテナの80番ポート → gitServerの10020番ポート とつながります。

git pushの問題

git push した際に、以下のようなエラーが発生する場合はバッファ値の設定が小さい為です。

起動スクリプトに以下の環境変数をセットします

gitコマンドのglobal設定のpostbufferを大きく(1GB)します。上記Dockerfileに以下を追加しておきます。