GitBucketをDockerで動かす

DockerDocker Composeをインストールしましたので、試しに何か動かしてみましょう。まずは基本のhello worldから。

$ docker run --rm hello-world

Hello from Docker!
...

メッセージが表示されました。問題なく動作するようです。ここでpermission云々言われる場合は、ユーザをdockerグループに追加するかsudoを付けて実行して下さい。

さて、今回はGitサーバの一実装であるGitBucketをDockerで動作させたいと思います。GitBucketは開発者がdocker imageを公開しているので、コマンドライン一発で使えます。ここでは少しオプションを変えて実行します。

$ docker run --rm -p 8080:8080 takezoe/gitbucket
...

これだけで、HTTP 8080番ポートから利用できるようになります。インストール直後のユーザ名/パスワードは root/root です。しかしこのままではコンテナを止めるとファイルも消えてしまいますので、永続化させましょう。ついでにSSHでもアクセスできるようにします。Ctrl+Cで実行中のコンテナを止めて、

$ mkdir gitbucket
$ docker run --rm -p 8080:8080 -p 29418:29418 -v ./gitbucket:/gitbucket takezoe/gitbucket
...

これで、SSHでもアクセスできるようになり、コンテナを止めてもファイルが永続化されるようになります (SSHアクセスのためにはGitBucket側の設定も必要です)。このタイミングでrootユーザのパスワードをデフォルトのものから変更しておきましょう。

しかし、毎回この長ったらしいコマンドをターミナルから入力するのは面倒です。また、複数のサービスを立ち上げることを考えると、このままでは正直不便です。

そこでDocker Composeを使います。今回のGitBucketであれば、設定ファイル docker-compose.yml は以下のような内容になります。

$ vi docker-compose.yml
version: '2'
services:
  gitbucket:
    image: takezoe/gitbucket
    volumes:
      - ./gitbucket:/gitbucket
    ports:
      - 8080:8080
      - 29418:29418

設定ファイルを保存したら、docker-composeコマンドでコンテナを起動します。

$ docker-compose up
...

停止する場合は、別のターミナルからdocker-compose downを実行して下さい。

今回起動したサービスはGitBucketだけですが、例えばJenkinsやRocket.Chat等を同時に起動したい場合はdocker-compose.ymlに各サービスを起動するコンテナの記述を追加すれば、このファイル一つで複数のコンテナを管理できるようになります。便利ですね。

“GitBucketをDockerで動かす” への2件の返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です