LoginSignup
3
5

More than 5 years have passed since last update.

DockerのRedmineにテーマを適用する方法(+サブディレクトリで動かす)

Last updated at Posted at 2018-02-28

概要

Docker Hubのlibrary/redmineをテーマが使えるように変更します.また,複数エンドポイントで利用するため,サブディレクトリで動作させます.

ベースのイメージはlibrary/redmine:3.4.4を利用し,新しくイメージを作成することで対応します.

テーマを適用する

まず,はじめにテーマを適用しましょう.redmineのテーマはredmineのディレクトリ内にあるpublic/themesにテーマのディレクトリを配置することで認識されます.テーマはminimalflat2を利用させていただきましょう.

Dockerfileで実行する内容としてはこんな感じになります.

  1. unzipがないので入れる
  2. テーマをダウンロードする
  3. public/themesディレクトリを作成する
  4. テーマを解凍して移動する
  5. 後始末

redmine:3.4.4はdebianベースなのでaptを使ってunzipを入れています.

Dockerfile
FROM redmine:3.4.4
RUN apt-get update \
 && apt-get install -y --no-install-recommends unzip \
 && rm -rf /var/lib/apt/lists/* \
 && wget -O minimalflat2.zip "https://github.com/akabekobeko/redmine-theme-minimalflat2/releases/download/v1.3.4/minimalflat2-1.3.4.zip" \
 && unzip minimalflat2.zip \
 && mkdir -p public/themes \
 && cp -r ./minimalflat2 ./public/themes \
 && rm -rf minimalflat2.zip \
 && rm -rf minimalflat2

サブディレクトリで動かす

サブディレクトリで動かす方法は公式Wikiにある方法でやります.サブディレクトリは/redmine3としていますが,仕様に応じて変更してください.2行目はRails.application.initialize!よりも前に挿入しなければならないのでsedで挿入しています.これでRailsのルーティングがサブディレクトリに移ります.そして3行目はRails.application.initialize!の後ろでないと名前解決ができないのでファイル末尾に追記しています.これで静的アセットがサブディレクトリでアクセスできるようになりますが,実際にpublicディレクトリ内でアクセス出来ないとエラーになるので,4行目でシンボリックリンクを貼ります.

Dockerfile
FROM redmine:3.4.4
RUN sed -i -e "$ i RedmineApp::Application.routes.default_scope = \"/redmine3\"" config/environment.rb
RUN echo "Redmine::Utils::relative_url_root = \"/redmine3\"" >> config/environment.rb
RUN ln -sf ${PWD}/public ${PWD}/public/redmine3

最後に

美しい.

一応テーマがGPLなので完全版のDockerfileを上げておきます(この対応でいいかわからないので違反していたら教えてください).

Dockerfile
FROM redmine:3.4.4

RUN sed -i -e "$ i RedmineApp::Application.routes.default_scope = \"/redmine3\"" config/environment.rb
RUN echo "Redmine::Utils::relative_url_root = \"/redmine3\"" >> config/environment.rb
RUN ln -sf ${PWD}/public ${PWD}/public/redmine3

RUN apt-get update \
 && apt-get install -y --no-install-recommends unzip \
 && rm -rf /var/lib/apt/lists/* \
 && wget -O minimalflat2.zip "https://github.com/akabekobeko/redmine-theme-minimalflat2/releases/download/v1.3.4/minimalflat2-1.3.4.zip" \
 && unzip minimalflat2.zip \
 && mkdir -p public/themes \
 && cp -r ./minimalflat2 ./public/themes \
 && rm -rf minimalflat2.zip \
 && rm -rf minimalflat2
3
5
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
3
5