今度は Redmine を Docker Compose で Raspberry に入れてみた
はじめに
この記事は、過去に投稿した 2 つの記事をあわせたような内容です。
ざっくり言うと、 前回作成した docker-compose.yml など を Raspberry Pi Zero W で動くようにごにょごにょするという内容です。
本題
ということで、実際に試した結果を記します。
前準備
今回は Raspberry Pi Zero W に Raspbian Buster Lite をインストールしました。
(前回は NOOBS を使って Raspbian Stretch Lite をインストールしました)
その後、Docker と Docker Compose をインストールしました。
ここまでの手順は、以下の記事を参考にさせていただきました。執筆者の @KEINOS さまに感謝です!
- ヘッドレス RaspberryPi Zero W のブートディスク作成(Wi-Fi 設定済み SSH 有効済み)
- ラズパイ Zero W(ARM v6l)Buster Lite に Docker と docker-compose をインストールする手順【2019/09/29 版】
動作確認したバージョン
Docker と Docker Compose のバージョンはそれぞれ以下のとおりです。
- Docker: 19.03.8
- Docker Compose: 1.21.0
Dockerfile などを変更
Raspberry Pi Zero W は ARMv6 アーキテクチャです。コンテナイメージのアーキテクチャをあわせる必要があります。
今回もファイル一式を GitHub で公開しています。ディレクトリ構成や細かい内容はそちらで確認してください。
Redmine の Dockerfile
Redmine は arm32v6 のイメージがないので arm32v5 のイメージ を使います。Passenger 版もないので、WEBrick 版を使います。
FROM arm32v5/redmine:4.1
COPY config/configuration.yml config
RUN set -eux; \
\
apt-get update && apt-get install -y --no-install-recommends \
antiword \
catdoc \
catdvi \
djview \
djview3 \
gcc \
gzip \
libemail-outlook-message-perl \
libwpd-tools \
libwps-tools \
libxapian-dev \
make \
poppler-utils \
ruby-xapian \
uuid \
uuid-dev \
unrtf \
unzip \
xapian-omega \
xpdf \
xz-utils \
; \
\
# install plugins
gosu redmine git clone --depth 1 https://github.com/akiko-pusu/redmine_banner.git plugins/redmine_banner; \
gosu redmine git clone --depth 1 https://github.com/akiko-pusu/redmine_issue_badge.git plugins/redmine_issue_badge; \
gosu redmine git clone --depth 1 https://github.com/akiko-pusu/redmine_issue_templates.git plugins/redmine_issue_templates; \
# gosu redmine git clone --depth 1 https://github.com/clear-code/redmine_full_text_search.git plugins/full_text_search; \
gosu redmine git clone --depth 1 https://github.com/danmunn/redmine_dmsf.git plugins/redmine_dmsf; \
gosu redmine git clone --depth 1 https://github.com/jbbarth/redmine_base_deface.git plugins/redmine_base_deface; \
gosu redmine git clone --depth 1 https://github.com/jbbarth/redmine_drafts.git plugins/redmine_drafts; \
gosu redmine git clone --depth 1 https://github.com/onozaty/redmine-view-customize.git plugins/view_customize; \
\
# install themes
gosu redmine git clone -b redmine4.1 --depth 1 https://github.com/farend/redmine_theme_farend_bleuclair.git public/themes/bleuclair; \
\
# install gems
gosu redmine bundle install;
redmine_full_text_search をコメントアウトしていますが、それは後ほど…
PostgreSQL の Dockerfile…?
PostgreSQL は arm32v6 のイメージ があるのですが Alpine 版だけのようです。PGroonga をインストールするとしたら Alpine は避けたいなあと思って、 arm32v5 のイメージ の Debian 版を使おうとしたのですが…なんということでしょう、PGroonga のインストールに失敗します。
原因調査する気力がなかったので、今回は redmine_full_text_search をあきらめました…そもそも Raspberry Pi Zero W 上の Redmine をそこまで使い込むのかってのもあるので。というわけで、今回は Dockerfile 自体が不要となりました。
今後、 Raspberry Pi 4 を入手したときにでも arm64v8 でリベンジしてみようと思います。
docker-compose.yml
結局、docker-compose.yml は下記のようになりました。
- Docker Compose のバージョンがやや古いので version は 3 にしました
- Nginx を挟むのも面倒だったのでホスト側ポート 80 番に直接バインドしました
- PostgreSQL は arm32v6 の Alpine 版をそのまま使うことにしました
version: "3"
services:
redmine:
build: ./redmine
container_name: myfav-redmine
restart: always
depends_on:
- db
ports:
- "80:3000"
environment:
TZ: Asia/Tokyo
REDMINE_DB_POSTGRES: db
REDMINE_DB_DATABASE: redminedb
REDMINE_DB_USERNAME: redmineuser
REDMINE_DB_PASSWORD: redminepassword
REDMINE_PLUGINS_MIGRATE: "true"
volumes:
- "/srv/redmine/files:/usr/src/redmine/files:z"
- "/var/log/redmine:/usr/src/redmine/log:z"
db:
image: arm32v6/postgres:12-alpine
container_name: myfav-redmine-db
restart: always
environment:
TZ: Asia/Tokyo
POSTGRES_DB: redminedb
POSTGRES_USER: redmineuser
POSTGRES_PASSWORD: redminepassword
volumes:
- "dbdata:/var/lib/postgresql/data"
volumes:
dbdata:
ビルドから起動まで
さて、準備が整ったのでさあビルドしてみるか、と docker-compose build
を叩いてみたところ…めっちゃ遅い!超時間かかる!!(そりゃあ当たり前なのですが…) ビルドが終わって docker-compose up -d
で起動させるのにもめっちゃ時間かかります。
どちらも時間を測っておらず別のことしていたので、結局どのくらい時間がかかったのかわからないのですが、よほど暇を持て余してない限りは黒い画面とにらめっこするのだけはお勧めしません。
起動して Redmine にアクセスしてみると…
前回、素の Redmine を動かしたときはそこそこ軽快に動いてくれていましたが、果たしてどうなるか…という心配をよそに今回もそれなりに動いてくれました。
さすがにキビキビとまではいかないですが、それでも許容できる範囲だと思います。 htop
でリソース使用状況を眺めながら操作してみましたが、そこまでカツカツでもなさそうです。(ちょっと驚きました)
これなら、前回は割と冗談ぽく言ってた「日々の電気代などランニングコストを抑えつつ、機微な情報をインターネットに晒す危険もない Redmine 環境」の実現ができたと言っても過言ではないかもしれません。もう少し手を加えたらバックアップも簡単に取れる(定期的に pg_dump を実行しておき、データベースのダンプと添付ファイルを別 PC に吸い上げておく、など)ので、万一の場合にも安心できると思っています。
おわりに
前回からおよそ 1 年越しになっちゃいましたが、ようやくやりたかったことが部分的に実現できました。
近頃は世界中が危機的状況に陥っている中で、リモートワークなどを急ピッチで進めないといけない組織も多くなってきているのではないかと思いますが、そのような状況下において本記事で紹介したような安価で手軽に構築できる Redmine 環境がどなたかのお役に立てれば幸いです。
Author And Source
この問題について(今度は Redmine を Docker Compose で Raspberry に入れてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/juno-nishizaki/items/b9b669b177eba0b75fe9著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .