LoginSignup
5
13

More than 5 years have passed since last update.

docker-composeでGitBucket(with PostgreSQL)とJenkinsを一発で立てる

Last updated at Posted at 2017-06-01

※ 7/31 GitBucketを自作イメージに変更しました。

ツイートでGitBucketとJenkinsを一発で立ち上げたいけどやる気が起きない...というのを見かけたので、Docker猛勉強中の私が頑張ってやってみました。ちなみにDockerfileをAnsible+Packerで置き換えられないかと挑戦していますが厳しいです。素直にDockerfileやります...

もともとGitBucketが好きでScala勉強していますがまだまだ貢献できそうにないので、少しでもお役に立てれば幸いです。

ソースはGithubにあります。

環境

  • macOS Sierra 10.12.6
  • Docker 17.06.0-ce, build 02c1d87
  • docker-compose 1.14.0, build c7bdf9e

構成

以下の3コンテナで運用します。ベースは全てAlpine Linuxです。

  • GitBucket本体 (Version 4.14.1)
  • GitBucket用DB (PostgreSQL 9.5)
  • Jenkins (Version 2.60.2)

検討したこと

どのイメージを使うか

GitBucketは起動時にDBへ接続できないとエラーで終了してしまうので、自作しました。

現在はPostgreSQLとMySQLをサポートし、DBが起動するまで待機するスクリプトを配置しています。
PostgreSQLとJenkinsは公式を使っています。

データ置き場

データ専用コンテナを用意するか迷いましたが、docker-compose rmで消してしまうかもしれないので、ホストディレクトリにマウントしています。
docker-compose.ymlと同階層にvolumesディレクトリを作り、各コンテナの重要データは全てそこに置くようにしました。

Nginxリバースプロキシ

GitBucketとJenkinsが共に8080ポートを使用するため、Jenkinsを8081に変更しています。
下記コンテナと使うと簡単に常時SSL化ができたのでオススメです。

使い方

まずソースを取ってきます。

git clone https://github.com/shomatan/gitbucket-jenkins-docker-compose

あとは

docker-compose up -d

するだけです。

数分すると各URLにアクセスできます。

GitBucketは ID:root PW:rootで、
Jenkinsはコンテナのログに初期ログイン用のパスワードが紛れてますので入力します。

2017-06-01T06:28:34.970840638Z 
*************************************************************
*************************************************************
*************************************************************
2017-06-01T06:28:34.970851647Z 
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
2017-06-01T06:28:34.970888248Z 
e88e0932068b43438151e06a65ff4e5c       <-  ////////// これ! //////////
2017-06-01T06:28:34.970893099Z 
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
2017-06-01T06:28:34.970899129Z 
*************************************************************
*************************************************************
*************************************************************

やり残したこと

  • Jenkins起動時にGitBucket用のプラグインをインストール
  • docker-compose.ymlでネットワークを定義してみる

終わりに

既にあるDockerイメージで簡単に構築できました:100:

5
13
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
5
13