LoginSignup
26
27

More than 5 years have passed since last update.

Docker で GitBucket 環境をつくる

Last updated at Posted at 2015-01-29

GitBucket の永続的な運用環境を Docker でつくってみるメモ。CoreOS 使っています。

イメージ作成

GitBucket が Scala 製 web アプリケーションということで、Tomcat の公式イメージを元に GitBucket のイメージを作ることにします。

core@coreos ~ $ docker search tomcat
NAME                                  DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
tomcat                                Apache Tomcat is an open source implementa...   56        [OK]       

Dockerfile 作成

Dockerfile は下記のような感じ。

Dockerfile
FROM tomcat:8-jre8

MAINTAINER Yu I. <yu.inao@facebook.com>

ENV GITBUCKET_HOME /var/gitbucket

RUN rm -rf /usr/local/tomcat/webapps/ROOT

ADD https://github.com/takezoe/gitbucket/releases/download/2.7/gitbucket.war /usr/local/tomcat/webapps/ROOT.war

VOLUME /var/gitbucket

EXPOSE 8080 29418

CMD [ "/usr/local/tomcat/bin/catalina.sh", "run" ]

これを適当なディレクトリの中に保存します:

gitbucket/
└── Dockerfile

ビルド

ビルドしてイメージを作成します:

docker build -t japboy/gitbucket:2.7 ./gitbucket/

確認

ビルドが完了したらホストのイメージ一覧に追加されているのを確認します:

core@coreos ~ $ docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
japboy/gitbucket      2.7                 1b4270aac1cc        27 minutes ago      368 MB

コンテナ実行

GitBucket サーバーをバックグランドコンテナとして起動します。

docker run -d -P -v /media/volume/gitbucket:/var/gitbucket japboy/gitbucket:2.7
  • -v でデータボリューム /var/gitbucket をホストの /media/volume/gitbucket に割り当てている。
  • CoreOS 側で /media/volume に NFS で NAS をマウントしてデータの永続化を行なうようにしている。

ホストに割り当てられたポート番号をプロセス一覧から確認します:

core@coreos ~ $ docker ps
CONTAINER ID        IMAGE                        COMMAND                CREATED             STATUS              PORTS                     NAMES
5f5b141841b9        japboy/gitbucket:2.7         "/usr/local/tomcat/b   29 minutes ago      Up 29 minutes       0.0.0.0:49159->8080/tcp   romantic_bartik  

これだと 49159 が公開ポートとして割り当てらています。

あとは web ブラウザから GitBucket にアクセスします。アドレスは上記ポート番号を指定して下記のような感じです:

http://192.168.0.98:49159/

データコンテナで永続化しようと思ったけど、あんまりポータビリティ高くなさそうなので、CoreOS で NFS をマウントして、それをデータボリュームに割り当てる事にした。

26
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
27