最終更新日:2023/09/18
Docker ComposeでRedmine環境を構築しよう。
RedmineはBitnami版Redmine、データベースはPostgres、リバースプロキシとしてHttpsPortalを使用する。
HttpsPortalは自動でLet's Encryptの証明書を取ってきてくれる機能があり、かなり便利。
ローカルやイントラネットで動作させる場合、HttpsPortalは不要だと思うので、これ自体使用しなくていい。
containers/bitnami/redmine at main · bitnami/containers
https://github.com/bitnami/containers/tree/main/bitnami/redmine
GitHub - docker-library/postgres: Docker Official Image packaging for Postgres
https://github.com/docker-library/postgres
SteveLTN/https-portal: A fully automated HTTPS server powered by Nginx, Let's Encrypt and Docker.
https://github.com/SteveLTN/https-portal
初期ユーザーと環境設定。
environment:
- REDMINE_USERNAME=user
- REDMINE_PASSWORD=password1234
- REDMINE_LANGUAGE=ja
データベース設定。
Postgresの設定と合わせる。
「REDMINE_DATABASE_TYPE」は使用するDBの種類、今回はPostgresを指定。
「REDMINE_DATABASE_HOST」はDB接続先、Postgresのサービス名を指定する。
- REDMINE_DATABASE_TYPE=postgresql
- REDMINE_DATABASE_HOST=redmine_db
- REDMINE_DATABASE_PORT_NUMBER=5432
- REDMINE_DATABASE_USER=redmine_user
- REDMINE_DATABASE_PASSWORD=redmine_user_1234
- REDMINE_DATABASE_NAME=redmine
DBのコンテナが起動してから、Redmineコンテナを起動させる。
depends_on:
- redmine_db
直接Redmineにアクセスする場合は、下記の設定でアクセスするポートと内部のポートを指定する。
ports:
- '13000:3000'
Redmine用のデータベース設定。
environment:
- POSTGRES_USER=redmine_user
- POSTGRES_PASSWORD=redmine_user_1234
- POSTGRES_DB=redmine
特定のドメインでアクセスされた場合にRedmineへリダイレクトさせる。
上記なら「example.com」にアクセスした場合、内部の「redmine:3000」へアクセスさせる。
DOMAINS: 'example.com -> http://redmine:3000'
本番環境の場合はこのSTAGEに「production」を設定する。
そうするとLet's Encryptへ証明書を取りに行き、ちゃんとしたHttpsで通信できるようになる。
テスト環境の場合はこの行自体をコメントアウトする。
そうするとHttpsPortalがオレオレ証明書を作り、なんちゃってHttpsで通信できるようになる。
STAGE: 'production' # Don't use production until staging works
早い話アップロードできる最大サイズ。
画像ならこれくらいで十分だと思う。
CLIENT_MAX_BODY_SIZE: 10M
Httpsでアクセスさせる。
HSTS_MAX_AGE: 15768000
version: '2'
services:
https-portal:
image: 'steveltn/https-portal:1.23'
container_name: 'https_portal_cont'
ports:
- '80:80'
- '443:443'
volumes:
- 'https_portal_data:/var/www/vhosts'
- 'https_portal_log:/var/log/nginx'
- 'https_portal_logrotate:/var/lib/logrotate'
environment:
DOMAINS: 'example.com -> http://redmine:3000'
# STAGE: 'production' # Don't use production until staging works
CLIENT_MAX_BODY_SIZE: 10M
HSTS_MAX_AGE: 15768000
redmine_db:
image: 'postgres:16.0-alpine'
container_name: 'redmine_db_cont'
restart: always
volumes:
- 'redmine_db_data:/var/lib/postgresql/data'
environment:
- POSTGRES_USER=redmine_user
- POSTGRES_PASSWORD=redmine_user_1234
- POSTGRES_DB=redmine
redmine:
image: 'docker.io/bitnami/redmine:5'
container_name: 'redmine_cont'
restart: always
depends_on:
- redmine_db
volumes:
- 'redmine_data:/bitnami'
environment:
- REDMINE_USERNAME=user
- REDMINE_PASSWORD=password1234
- REDMINE_LANGUAGE=ja
- REDMINE_DATABASE_TYPE=postgresql
- REDMINE_DATABASE_HOST=redmine_db
- REDMINE_DATABASE_PORT_NUMBER=5432
- REDMINE_DATABASE_USER=redmine_user
- REDMINE_DATABASE_PASSWORD=redmine_user_1234
- REDMINE_DATABASE_NAME=redmine
volumes:
https_portal_data:
driver: local
https_portal_log:
driver: local
https_portal_logrotate:
driver: local
redmine_db_data:
driver: local
redmine_data:
driver: local
コンテナ起動後HttpsPortalで設定したドメイン(HttpsPortal未設定の場合はRedmineに設定したポート)にアクセスして画面が表示されていれば完了。
HttpsPortalのSTAGE設定で「production」を設定した場合、Let's Encryptに証明書を取りに行くので、初回起動のときは5分ぐらい待つと良い。
最終更新日:2023/09/18
Redmineの見た目をカスタマイズできる神プラグイン。
このサイトでもがっつり使ってます。
onozaty/redmine-view-customize: View customize plugin for Redmine
https://github.com/onozaty/redmine-view-customize
他のプラグインと同じく、Redmineのプラグインフォルダに入れてインストールコマンドを打つだけ。
詳細はリンク先へ。
有用なものをピックアップ!
公式リポジトリにもたくさんあります。
onozaty/redmine-view-customize-scripts: Code examples for "Redmine View Customize Plugin"
https://github.com/onozaty/redmine-view-customize-scripts
パスのパターン:
種別:CSS
div#top-menu a.help{
display:none;
}
パスのパターン:/projects/
種別:CSS
.activity{
display:none !important;
}
パスのパターン:/wiki[/]*
種別:JavaScript
$(function(){
$('a[href^=http]').attr('target','_blank');
});
最終更新日:2023/09/18
有名なプロジェクト管理ソフト
◆プラグインを入れたイメージの作成
Redmineのプラグインを入れたイメージをビルドする。
◆Docker ComposeでRedmine環境構築
Redmine+PostgreSQLのシンプルなやつ。
◆View Customize
見た目をいじれる神プラグイン。
Redmine
https://www.redmine.org/
コンテンツ一覧へ戻る
最終更新日:2024/09/07
Podmanで解説します。
containers/bitnami/redmine at main · bitnami/containers
https://github.com/bitnami/containers/tree/main/bitnami/redmine
RedmineはBitnamiが作成しているDockerイメージで簡単に構築可能。
今回はこのBitnami版RedmineにView Customizeプラグインを入れる。
そのためにDockerfileを編集し、予めプラグインを入れたイメージを作成する。
リポジトリをクローンして取得する、普通に圧縮ファイルで取得して解凍してもOK。
いつからか、Bitnamiの各種コンテナが1つのリポジトリに集められてしまった。 超見づれぇ~
今回必要なのは「bitnami/containers/redmine」のみで、他の不要なフォルダは削除してしまっても問題ない。
bitnami/containers: Bitnami container images
https://github.com/bitnami/containers/
今回入れるView Customizeプラグインも同様に取得しておく。
プラグインは後でイメージにコピーするので「5/debian-12/」フォルダに置いておく。
onozaty/redmine-view-customize: View customize plugin for Redmine
https://github.com/onozaty/redmine-view-customize
「5/debian-12/」フォルダに移動し、「Dockerfile」をエディタで開き編集する。
やることは1つで、プラグインをイメージにコピーする文を追加する。
イメージ作成時はプラグインをコピーするだけで、コンテナ作成後に手動でセットアップする。
手動セットアップ方法は後ほど。
...
RUN apt-get autoremove --purge -y curl && \
apt-get update && apt-get upgrade -y && \
apt-get clean && rm -rf /var/lib/apt/lists /var/cache/apt/archives
# ここから
# Add Plugins
COPY view_customize /opt/view_customize
# ここまで
COPY rootfs /
...
以前はView Customizeプラグイン用に「Nokogiri」というライブラリを使用するためのパッケージをインストールしていたが、不要になった。
(Native gemsに組み込まれたらしい)
なんかまた必要になった。
インストールする分には悪さしないと思うので、もう確定でインストールしちゃいましょう。
まずは「Nokogiri」というライブラリを使用するためのパッケージをインストールさせるようにする。
https://nokogiri.org/tutorials/installing_nokogiri.html
パッケージインストール文に、必要なライブラリ「build-essential」「patch」「ruby-dev」「zlib1g-dev」「liblzma-dev」を追加する。
さらにプラグインインストール時に要求された「wget」も追加する。
# Install required system packages and dependencies
RUN install_packages (長いので中略) zlib1g-dev build-essential patch ruby-dev liblzma-dev wget
以前の手順ではイメージ作成時にセットアップしていたが、その方法はできなくなった。
ビルドしてイメージを作成する。
podman build ./ -t redmine_custom:1.0.0 --format docker
「--format docker」はPodmanのビルド用オプション。
Bitnami版RedmineのDockerfileがDocker用に作成されているので、それに合わせる。
終了後はイメージ一覧コマンドで作成され追加されているか確認する。
コマンド
podman images
結果
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/redmine_custom 1.0.0 c8e21d2f0626 27 minutes ago 743 MB
プラグインを有効にするには、コンテナ作成後に手動でセットアップする必要がある。
といってもコンテナに入ってプラグインをRedmineのプラグインフォルダに移動させ、そこでインストールコマンドを打つだけ。
インストールした後はコンテナの再起動を忘れずに。
podman exec -it (コンテナ名) /bin/bash
cd /opt/
mv view_customize/ bitnami/redmine/plugins/
cd bitnami/redmine/
rm Gemfile.lock
bundle config unset deployment
bundle install
実際に作成したイメージを使って、ちゃんとプラグイン一覧にView Customizeがあれば完了。
ちなみに2個以上のプラグインをDockerfileで入れたことないので、やりたい人は自分の目で確かめてみよう!