Skip to content

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
1
2
3
4
5
6
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
1
2
$ docker --version
Docker version 24.0.7, build afdd53b
1
2
$ docker compose version
Docker Compose version v2.23.3

Docker / Docker Compose のインストール

Docker と Docker Compose のインストール方法は公式サイトの下記に記載されています。

手順は変わっていないようですので、今回は以前に書いた Ubuntu 22.04.2LTS へ docker / docker-compose / docker-purge をインストールする を参照してインストールしました。

コンテナのビルド

GitBucket コンテナをビルドします。 作業用のディレクトリを作成します。

1
2
mkdir gitbucket
cd gitbucket

GitBucket をビルドする為の Docker ファイルは gitbucket-docker/Dockerfile に置いてありました。 1 行目に FROM adoptopenjdk:8-jre-hotspot とありますが、Adoptiumadoptopenjdk:8-jre-hotspot を指定しているものだと思われます。 冒頭に記載した通り、GitBucket 4.40.0 からは Java8 のサポートが無くなっており、このままでは問題があります。

gitbucket-docker リポジトリの Dockerfile
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
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 というファイルを新規作成します。

修正した Dockerfile
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
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"]

ビルドします。

1
docker build -t sig9/gitbucket:4.40.0 .

イメージが作成されました。 サイズは約 550MB でした。

1
2
3
$ docker images
REPOSITORY       TAG       IMAGE ID       CREATED         SIZE
sig9/gitbucket   4.40.0    d1746e1eca90   2 seconds ago   552MB

コンテナを開始する

コンテナを開始するだけであれば、例えば以下のように実行します。 但し、永続ストレージを利用していない為、この起動方法ではコンテナを停止・開始し直す度にデータが初期化されてしまいます。

1
docker run -d -p 8080:8080 --name gitbucket sig9/gitbucket:4.40.0

永続ストレージを用いて、GitBucket の設定を維持するにはまず「GitBucket データ保存用ディレクトリ」を作成します。

1
mkdir gitbucket

GitBucket のデータを永続ストレージに保存するよう、-v (Volume) を指定してコンテナを開始します。 これでコンテナを停止・起動し直してもデータが維持されます。

1
docker run -d -p 8080:8080 -v `pwd`/gitbucket:/gitbucket --name gitbucket sig9/gitbucket:4.40.0

Docker Compose でコンテナを開始する

Docker Compose でコンテナを開始するには以下の内容で docker-compose.yml というファイルを新規作成します。 前述の永続ストレージも指定します。

docker-compose.yml
1
2
3
4
5
6
7
8
9
version: "3.9"
services:
  gitbucket:
    image: sig9/gitbucket:4.40.0
    restart: always
    ports:
      - "8080:8080"
    volumes:
      - ${PWD}/gitbucket:/gitbucket

Docker Compose でコンテナを開始します。 -d オプションを指定し、バックグラウンドで実行させます。

1
docker compose up -d

GitBucket へのログイン

GitBucket コンテナを起動したら Web ブラウザから http://[ADDRESS]:8080 へアクセスします。 ADDRESS にはコンテナを動作させているコンピュータのアドレスを指定します。 正しくアクセス出来れば以下の画面が表示されます。 画面右上にある Sign in をクリックします。

file

ログインフォームが表示されます。 デフォルトでは UsernamePassword のいずれも root でログイン可能です。

項目
Username root
Password root

file

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

file