# プラグインを入れたイメージの作成 _**最終更新日:2024/09/07**_ Podmanで解説します。 {{toc}} ## イメージ作成 containers/bitnami/redmine at main · bitnami/containers https://github.com/bitnami/containers/tree/main/bitnami/redmine RedmineはBitnamiが作成しているDockerイメージで簡単に構築可能。 今回はこのBitnami版RedmineにView Customizeプラグインを入れる。 そのためにDockerfileを編集し、予めプラグインを入れたイメージを作成する。 ### (1):ファイル取得 リポジトリをクローンして取得する、普通に圧縮ファイルで取得して解凍しても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 ### (2):Dockerfile編集 「5/debian-12/」フォルダに移動し、「Dockerfile」をエディタで開き編集する。 やることは1つで、プラグインをイメージにコピーする文を追加する。 イメージ作成時はプラグインをコピーするだけで、コンテナ作成後に手動でセットアップする。 手動セットアップ方法は後ほど。 ``` shell ... 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」も追加する。 ``` shell # Install required system packages and dependencies RUN install_packages (長いので中略) zlib1g-dev build-essential patch ruby-dev liblzma-dev wget ``` 以前の手順ではイメージ作成時にセットアップしていたが、その方法はできなくなった。 {{collapse(以前のプラグインセットアップ手順(クリックで展開)) ぶっちゃけここの手順はやっつけなので、もっと良い方法がありそうな気がする・・・ ~~散々苦労させられたGemfileが削除されている、ざまあないぜ!~~ ``` shell ... RUN apt-get update && apt-get upgrade -y && \ rm -r /var/lib/apt/lists /var/cache/apt/archives # ここから # Add Plugins WORKDIR /opt/bitnami/redmine COPY view_customize /opt/bitnami/redmine/plugins/view_customize RUN rm Gemfile.lock RUN bundle config unset deployment RUN bundle install # ここまで COPY rootfs / ... ``` }} ### (3):ビルド ビルドしてイメージを作成する。 ``` shell podman build ./ -t redmine_custom:1.0.0 --format docker ``` 「--format docker」はPodmanのビルド用オプション。 Bitnami版RedmineのDockerfileがDocker用に作成されているので、それに合わせる。 終了後はイメージ一覧コマンドで作成され追加されているか確認する。 コマンド ``` shell podman images ``` 結果 ``` shell REPOSITORY TAG IMAGE ID CREATED SIZE localhost/redmine_custom 1.0.0 c8e21d2f0626 27 minutes ago 743 MB ``` ### (4):プラグイン手動セットアップ プラグインを有効にするには、コンテナ作成後に手動でセットアップする必要がある。 といってもコンテナに入ってプラグインをRedmineのプラグインフォルダに移動させ、そこでインストールコマンドを打つだけ。 インストールした後はコンテナの再起動を忘れずに。 #### 1.コンテナに入る ``` shell podman exec -it (コンテナ名) /bin/bash ``` #### 2.プラグインをRedmineのプラグインフォルダに移動 ``` shell cd /opt/ mv view_customize/ bitnami/redmine/plugins/ ``` #### 3.Redmineのフォルダに移動しインストールコマンドを実行 ``` shell cd bitnami/redmine/ rm Gemfile.lock bundle config unset deployment bundle install ``` ## 動作確認 実際に作成したイメージを使って、ちゃんとプラグイン一覧にView Customizeがあれば完了。 ちなみに2個以上のプラグインをDockerfileで入れたことないので、やりたい人は自分の目で確かめてみよう! --- [[redmine:wiki|メインページに戻る]]