0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

EC2でRedmineのplugin適用

Last updated at Posted at 2022-10-21

本記事のターゲット

  • Dockerは触ったことあるけど理解が深くない人
  • RedmineをEC2で立てたい人
  • 自分の備忘録

概要

本番のRedmineを使う前に、本番と同じRedmineバージョンでpluginが正常に動作するか確認したいが、MacでDockerを使いRedmine環境を作成するとDockerDesktopは有料になるため、Linuxで動作するEC2上にテスト環境を立てて確認します。

今回はEasyGanttを入れました。

作成した記憶を辿って書いているため、インストール内容など不足分があるかもしれませんのでご了承ください。

手順

EasyGanttは事前に登録してダウンロードしておく。

EC2作成

手順上t2.microのインスタンスサイズだと途中でスペックが足りずinstallしていると落ちてしまったので、t3a.mediumを使用。
AmazonLinux2を作成する。

EC2にSSHでログインして、dockerをインストールします。インストール方法は以下で説明されています。

Redmineを起動

docker-compose.yamlを作成する。

$ mkdir redmine
$ touch docker-compose.yaml

公式ページの通りdocker-compose.yamlに以下を入力。

version: '3.1'

services:

  redmine:
    image: redmine
    restart: always
    ports:
      - 8080:3000
    environment:
      REDMINE_DB_MYSQL: db
      REDMINE_DB_PASSWORD: example
      REDMINE_SECRET_KEY_BASE: supersecretkey

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: redmine

Dockerを起動

$ docker-compose up -d

これでEC2のパブリックIPからログインできます。
セキュリティグループでTCPの8080ポートに開発環境のIPからアクセス可能に設定して開けることを確認。

redmineプラグイン適用方法

やることはとっても簡単で以下を行うだけです。

  1. redmineのソースのpluginsのフォルダ内にpluginのソースを配置
  2. migrateコマンドを実行
  3. redmineの再起動

redmineのプラグインを配置

Container IDを取得し、EasyGanttFree.zipをコピーします。
redmineのソースはDocker内の/usr/src/redmineにあります。
cdなどは省略しています。
(ここではEasyGanttFreeは3系を使っています)

$ docker ps
$ docker cp EasyGanttFree.zip {redmineのcontainer id}:/usr/src/redmin/plugins/EasyGanttFree.zip
$ docker exec -it {redmineのcontainer id} bash

// redmineの中
$ cd /usr/src/redmine/plugins

// unzipが入っていないためyumをアップデートしてunzipをインストール
// docker内ではyumが入っていないのでaptを使用
$ apt update
$ apt install unzip
$ unzip EasyGanttFree.zip
$ unzip EasyGanttFree-3.x.zip

migrateコマンドを実行

以下で更新が可能ですが、実行するとrubyのバージョンが古いためエラーとなります。
2022/10時点ではrubyの2.7.0を要求されました。

$ bundle exec rake db:migrate RAILS_ENV=production
$ bundle exec rake redmine:plugins:migrate RAILS_ENV=production

rubyを入れるためrbenvをインストールしますが、色々と足りないためインストールします。
パスを通すなどインストール後に要求されますので一つ一つ確認しながら進めてください。

$ apt install curl
// homebrewをインストール
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
// rbenvをインストール
$ brew install rbenv
// patchなどインストールされていないのでインストール
$ apt install patch
$ apt install build-essential
// rbenvでrubyの2.7.0を入れる
$ rbenv install 2.7.0
// ruby 2.7.0を使う
$ rbenv global 2.7.0

この後上記のmigrateを実行すると成功します。

redmineの再起動

何気にハマりました。誤ってDokerイメージを消そうものなら初めからやり直しになるので色々検索しました。
redmineを再起動する方法を調べると以下の内容がヒットします。

  • redmine/tmpフォルダにrestart.txtを入れてRedmineにアクセスする
  • apacheを再起動
  • Supervisorを使って再起動

上2つはコンテナでは使えません。Supervisorは使えると思いますが、再起動したいだけなので学習コストと設定の手間などを考えると別の方法を探しました。

最終的にはDockerの再起動でプラグインが動いたことを確認できました。

// redmineから出る
$ exit
$ docker restart {redmineのContainer id}

参考

DocerInstall: https://kacfg.com/aws-ec2-docker/
Redmine: https://hub.docker.com/_/redmine
Redmine upgrade: http://guide.redmine.jp/RedmineUpgrade/
Homebrew: https://brew.sh/index_ja.html
rbenv: https://qiita.com/hujuu/items/3d600f2b2384c145ad12
Supervisor: https://qiita.com/ymy_s/items/9270c7964d56e8e8fad3

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?