GitBucket 4.40.0 の Docker コンテナを作成する
GitBucket 4.40.0 がリリースされていました。 4.40.0 - 22 Oct 2023 付の ChangeLog によると変更箇所は下記だそうです。
4.40.0 - 22 Oct 2023¶
- Configurable default branch name
- Support custom fields of issues and pull requests in search condition
- Create pull request from default branch of forked repositories
- News feed shows activities of all visible repositories
- Drop Java 8 support
- Improve git push performance
GitBucket のコンテナイメージは gitbucket/gitbucket で提供されているようです。 ですが、実際に起動してみるとバージョン 4.38.4 (2 Nov 2022) とやや古いように見えました。 その為、今回は最新のバージョン 4.40.0 をコンテナイメージ化してみます。 尚、作成したコンテナは DockerHub 内の下記 URL で公開しています。
検証環境¶
- ESXi 上の仮想マシン
- CPU:8、メモリ:16GB
- Ubuntu 22.04.3 LTS
- Docker 24.0.7
- Docker Compose 2.23.3
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
Docker / Docker Compose のインストール¶
Docker と Docker Compose のインストール方法は公式サイトの下記に記載されています。
手順は変わっていないようですので、今回は以前に書いた Ubuntu 22.04.2LTS へ docker / docker-compose / docker-purge をインストールする を参照してインストールしました。
コンテナのビルド¶
GitBucket コンテナをビルドします。 作業用のディレクトリを作成します。
GitBucket をビルドする為の Docker ファイルは gitbucket-docker/Dockerfile に置いてありました。 1 行目に FROM adoptopenjdk:8-jre-hotspot とありますが、Adoptium の adoptopenjdk:8-jre-hotspot を指定しているものだと思われます。 冒頭に記載した通り、GitBucket 4.40.0 からは Java8 のサポートが無くなっており、このままでは問題があります。
FROM adoptopenjdk:8-jre-hotspot
LABEL maintainer="Naoki Takezoe <takezoe [at] gmail.com>"
ADD https://github.com/gitbucket/gitbucket/releases/download/4.39.0/gitbucket.war /opt/gitbucket.war
RUN ln -s /gitbucket /root/.gitbucket
VOLUME /gitbucket
# Port for web page and Port for SSH access to git repository (Optional)
EXPOSE 8080 29418
CMD ["sh", "-c", "java -jar /opt/gitbucket.war"]
1 行目を修正し、adoptopenjdk:hotspot をベースにします。 以下の内容で Dockerfile というファイルを新規作成します。
FROM adoptopenjdk:hotspot
LABEL maintainer="Naoki Takezoe <takezoe [at] gmail.com>"
ADD https://github.com/gitbucket/gitbucket/releases/download/4.40.0/gitbucket.war /opt/gitbucket.war
RUN ln -s /gitbucket /root/.gitbucket
VOLUME /gitbucket
# Port for web page and Port for SSH access to git repository (Optional)
EXPOSE 8080 29418
CMD ["sh", "-c", "java -jar /opt/gitbucket.war"]
ビルドします。
イメージが作成されました。 サイズは約 550MB でした。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sig9/gitbucket 4.40.0 d1746e1eca90 2 seconds ago 552MB
コンテナを開始する¶
コンテナを開始するだけであれば、例えば以下のように実行します。 但し、永続ストレージを利用していない為、この起動方法ではコンテナを停止・開始し直す度にデータが初期化されてしまいます。
永続ストレージを用いて、GitBucket の設定を維持するにはまず「GitBucket データ保存用ディレクトリ」を作成します。
GitBucket のデータを永続ストレージに保存するよう、-v (Volume) を指定してコンテナを開始します。 これでコンテナを停止・起動し直してもデータが維持されます。
Docker Compose でコンテナを開始する¶
Docker Compose でコンテナを開始するには以下の内容で docker-compose.yml というファイルを新規作成します。 前述の永続ストレージも指定します。
version: "3.9"
services:
gitbucket:
image: sig9/gitbucket:4.40.0
restart: always
ports:
- "8080:8080"
volumes:
- ${PWD}/gitbucket:/gitbucket
Docker Compose でコンテナを開始します。 -d オプションを指定し、バックグラウンドで実行させます。
GitBucket へのログイン¶
GitBucket コンテナを起動したら Web ブラウザから http://[ADDRESS]:8080 へアクセスします。 ADDRESS にはコンテナを動作させているコンピュータのアドレスを指定します。 正しくアクセス出来れば以下の画面が表示されます。 画面右上にある Sign in をクリックします。

ログインフォームが表示されます。 デフォルトでは Username と Password のいずれも root でログイン可能です。
| 項目 | 値 |
|---|---|
Username |
root |
Password |
root |

これでログイン出来ました。
