2017年あけましておめでとうございます。何かしら新しいことをやろうかと Atlassian JIRA を Docker を使って Mac上に立ち上げてみたのでその備忘録を残しておきます。
環境
ホスト
- macOS Sierra 10.12.2
- Docker for Mac 1.13.0-rc4-beta34.1 (14853)
ゲスト (JIRA)
- Debian GNU/Linux 8 (jessie)
- OpenJDK 1.8.0_102
- Atlassina JIRA 7.2.7
ゲスト (PostgreSQL)
- Debian GNU/Linux 8 (jessie)
- PostgreSQL 9.4.10
なぜDocker for Macを使った?
VPSに置こうと思ったのでとりあえず手元で構築手順をまとめるのが目的です。
まだVPSには置いてないのでその体で読んでください。
構築手順
Docker for Macをインストール
公式サイトからインストーラーをダウンロードしてインストールするか、Homebrew cask使いの人は
brew cask install docker
でインストールします。
インストール後 /Applications/Docker.app
を起動します。
Dockerイメージの選択
JIRAのDockerイメージはいろいろ1 あるんですが、今回は jira docker
で最初に出てくる cptactionhank/atlassian-jira をそのまま使います。
データの保存先もいろんなSQLサーバーが使えますが今回は PostgreSQL を選びました。これもDockerコンテナで立ち上げます。
PostgreSQLにした理由は自分専用なので軽い方がいいな、と思ったくらいで特にありません。
JIRA用のPostgreSQLをDockerで立ち上げる
JIRAのコンテナと連携するためのDBを用意します。今回はJIRAコンテナ専用のPostgreSQLを立ち上げます。
この執筆時はJIRAはPostgresql 9.4までしか今のところサポートしてないとのことなので、最新版ではなく9.4を使います。
postgres:latest
イメージを使ってJIRAをセットアップするとわかるんですが、管理者ユーザー作成の画面で作成に失敗します。
コンソールから
docker run --name postgres-jira -e POSTGRES_PASSWORD=password -e POSTGRES_USER=jira -e POSTGRES_DB=jira --detach postgres:9.4
で立ち上げます。
docker start postgres-jira
で起動できるように --name
引数で名前をつけておきます。
run時の環境変数にパスワード、ユーザー名、DB名を渡しています。
パスワードは適当につけましょう。ユーザー名 (POSTGRES_USER
) 、データベース名 (POSTGRES_DB
) はデフォルト値を使ってもいいですが今回は指定しています。
PostgreSQLの公式Dockerfileで利用できる環境変数は PostgreSQLのHubページ を参照して下さい。
JIRAをDockerで立ち上げる
Dockerfileによると、JIRAは8080ポートを使うとのこと。
自分のブラウザから8080ポートでアクセスできるようにして立ち上げてみます。
コンソールから
docker run --name jira --detach --publish 8080:8080 --link postgres-jira:postgres cptactionhank/atlassian-jira:latest
で立ち上げます。
--link
でPostgreSQLを利用できるようにしておきます。
PostgreSQLと同様に --name
で名前をつけておき、 docker start jira
で起動できるようにしています。
立ち上がったらブラウザから http://localhost:8080/ を開きます。
JIRAのセットアップ
初期画面
ブラウザで開くとこのような画面が表示されます。
※右上の「言語」メニューから日本語を選択しています。
「自分でセットアップする」を選択。
データベースのセットアップ
データベースのセットアップでは「お使いのデータベース」を利用します。
なんでかわかりませんが、最初に「組み込み」を選んだときにはコンテナを再起動したときにエラーが出てJIRAが立ち上がらなかったためデータベースを利用します。
ホスト名は docker inspect postgres-jira
を実行し、IPAddressとなっているものを入力します。今回は 172.17.0.2
でした。
ほんとは環境変数でJIRAの docker run
時に渡したりできるのでそれを使ってセットアップするべき?この辺はノウハウわかってないです。
アプリケーションプロパティをセットアップ
別のJIRAからのデータのインポートも出来ますが、今回は新規なのでこのまま作成します。アプリケーションタイトル、ベースURLを適当に設定します。
ライセンスキーの入力
所持しているライセンスキーを使うか、マイアトラシアンのライセンス画面 からJIRA Core用の評価用ライセンスを作成します。
管理者アカウントのセットアップ
管理者アカウントを登録します。筆者は管理者=唯一のユーザーとして利用することを想定して登録しました。
メール通知のセットアップ
通知をメールで送る設定。書いてある通りあとでセットアップも可能。SMTPサーバーが必要です。
今回はスキップで。
Welcome to JIRA, (管理者)!
日本語を選んで終わり。
アバターを選び、プロジェクトを作成してからシステム設定をしましょう。
とりあえずシステム設定で時間帯をJSTに変更しました。
JIRAの停止/起動
Docker compose化してないので、 jira
-> postgres
の順で停止するようにします。
- 停止するとき
docker stop jira && docker stop postgres-jira
- 起動するとき
docker start postgres-jira && docker start jira
docker start
は docker run
時の引数のまま起動してくれる機能、という理解をしています。
終わりに
Docker for Macを使ってAtlassian JIRAをコンテナで立ち上げたときの備忘録を書きました。
Docker for Macはまだベータ版ですが、今回のように適当なLinuxコンテナを動かす分には問題なく動かすことが出来ました。
ただ Docker for Macをアンインストールするとイメージやコンテナも削除される とか 仮想ディスクがディスク容量を逼迫する といった罠があるようですのでご注意下さい。
今後の予定
- Docker composeでJIRAとPostgreSQLをまとめる
- docker run時の
--restart
引数でホスト起動時に自動的にJIRAが起動するようにする - VPSサーバーに移行する
-
PostgreSQL / MySQLとセットになっているものもあるので、そういうのを選ぶのもあり。 ↩