Linux (CentOS 7) で GitBucket を動かす

開発サーバーにGitBucketを入れたので、その手順をメモする。
入れたものは下記のとおり。

製品 バージョン 参照先
JDK 8u101-linux-x64 Java SE Development Kit 8 - Downloads
Tomcat 8.5.5 Apache Tomcat® - Apache Tomcat 8 Software Downloads
GitBucket 4.4 Release 4.4 · gitbucket/gitbucket · GitHub

それぞれの手順を順に記す。

JDK

TomcatとGitBucketを動かすためにJDKを入れる。
Oracleのダウンロードページから、現在最新版の8u101をダウンロードする。
手元のLinuxは64bitなので、linux-x64を。
RPMの方が楽なのでjdk-8u101-linux-x64.rpmをダウンロード。

JDKのインストール

RPMファイルがあるフォルダで下記コマンドを実行

yum localinstall --nogpgcheck jdk-8u101-linux-x64.rpm

インストール出来たか確認する。

# java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

環境変数を設定

/etc/profileに環境変数 JAVA_HOME を設定する。
/etc/profile をエディタ開いて、下記を追加。

export JAVA_HOME=/usr/java/default

Tomcat

GitBucketは組み込みのウェブサーバーが入っているのでそちらで動かしても良いが、今回はTomcatの上で動かす。

ユーザー作成

まずはTomcatを動かすためのユーザー tomcat を作る。

useradd -s /sbin/nologin tomcat

Tomcatのインストール

ダウンロードサイトからTomcatのtar.gzファイルをダウンロードし、適当なフォルダに展開する。

tar xvzf apache-tomcat-8.5.5.tar.gz

展開したファイルを /usr/local に移動する。

mv apache-tomcat-8.5.5 /usr/local

所有者を先ほど作成したtomcatに変更する。

cd /usr/local
chown -R tomcat:tomcat apache-tomcat-8.5.5

Tomcatシンボリックリンクを作成する。

ln -s apache-tomcat-8.5.5 tomcat

環境変数を設定

/etc/profileに環境変数 CATALINA_HOME を設定する。
/etc/profile をエディタ開いて、下記を追加。

export CATALINA_HOME=/usr/local/tomcat

Tomcatをデーモンとして動かす

サーバーなのでサーバー起動時に自動で立ち上がって欲しいからデーモンとして動かす。
Tomcatには jsvc というデーモン化ツールがあるので、それをセットアップして使う。

まずはTomcatのインストールフォルダのbinに移動。

cd /usr/local/tomcat/bin

jsvcのアーカイブを展開。

tar xvzf commons-daemon-native.tar.gz

展開後のフォルダに移動。

cd  commons-daemon-1.0.15-native-src/unix

Makeファイルを生成。

./configure

makeを実行。

make

出来たjsvcをコピー。

cp jsvc ../..

ここまででデーモン起動用のシェルが作成されるので、試しに起動してみる。

cd /usr/local/tomcat/bin
./daemon.sh start

ブラウザで http://localhost:8080/ にアクセスする。
リモートの環境ならlocalhostではなく対象のIPアドレスなりを入力すること。
もし実行環境のファイアーウォールが原因でアクセスできない場合は8080ポートを空ける等、適宜対応を。

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

起動用のスクリプトを /usr/lib/systemd/system/tomcat.service に作成する。
/usr/lib/systemd/system/tomcat.service をエディタで新規作成する。
内容は下記のとおり。

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking
PIDFile=/var/run/tomcat.pid
Environment=CATALINA_PID=/var/run/tomcat.pid
Environment=JAVA_HOME=/usr/java/default
Environment=CATALINA_HOME=/usr/local/tomcat
Environment=CATALINA_BASE=/usr/local/tomcat
Environment=CATALINA_OPTS=

ExecStart=/usr/local/tomcat/bin/jsvc \
            -Dcatalina.home=${CATALINA_HOME} \
            -Dcatalina.base=${CATALINA_BASE} \
            -cp ${CATALINA_HOME}/bin/commons-daemon.jar:${CATALINA_HOME}/bin/bootstrap.jar:${CATALINA_HOME}/bin/tomcat-juli.jar \
            -user tomcat \
            -java-home ${JAVA_HOME} \
            -pidfile /var/run/tomcat.pid \
            -errfile SYSLOG \
            -outfile SYSLOG \
            $CATALINA_OPTS \
            org.apache.catalina.startup.Bootstrap

ExecStop=/usr/local/tomcat/jsvc \
            -pidfile /var/run/tomcat.pid \
            -stop \
            org.apache.catalina.startup.Bootstrap

[Install]
WantedBy=multi-user.target
	||<

サービス登録をする。
>|sh|
systemctl enable tomcat.service

GitBucket

最後にGitBucketを入れる。
GitBucketのWARファイルをダウンロードし、Tomcat の webapps フォルダにコピーする。

cp gitbucket.war /usr/local/tomcat/webapps

ホットデプロイされていないようなら Tomcat を再起動する。

systemctl restart tomcat

ブラウザで http://localhost:8080/gitbucket/ にアクセスする。
GitBucketのトップ画面が出てきたらOK。