概要
Atlassian JIRA 7.2.2のWARファイルをTomcatへデプロイするまでの手順をDokerで行う。
動機
公式よりデプロイ手順は公開されているが、相変わらず調査と検証で手間がかかってしまった。狙いは手順のコード化と自動化、更にメンバーとの共有となる。
手順
ファイル構成
以下の様な構成となる。
.
├── docker-compose.yml
├── Dockerfile
├── jira.war
└── server.xml
jira.warはJIRAのWARファイルであり、これは各自が準備すること。ソースコードのビルドについては「Atlassian JIRAのビルドをDockerで行う」を参照すること。
その他のファイルはGithubに上げてあるので、そこから参照なり取得なりして欲しい。
なお、このDockerfileではMySQLとSQL Server及びPostgreSQLの各種JDBCドライバーを自動でダウンロードします。OracleのJDBCドライバーはライセンス承認とOracle.comアカウントの登録が必要なため、自動的にダウンロードできません。代わりに手動でダウンロードした後にTomcatへ配置してください。
リクエストパースエラーの回避
近年TomcatがRFC 7230とRFC 3986の規約に則ったため、規約に違反するリクエストはBad Requestとして扱われる。JIRAはログアウトや課題のトランジション等でリクエストパラメーターにパイプ文字を含んでいる。
この問題を回避するため、DockerfileではTomcatのバージョンを規約に則っていない8.5.6版を利用している。
Dockerの実行
docker-composeコマンドで行うこと。詳細については言及しない。