Raspberry Pi 4でRedmineを簡単起動するには Podman版

このような感じで、Raspberry Pi 4でオープンソースのプロジェクト管理ソフトウェア「Redmine」を起動してみました。

普通にRedmineを構築する場合、MySqlやPostgreSQL等のデータベースの構築と、Ruby、Rails、そしてRedmine本体の設定が必要になりますが。そのあたりは行っておりません。

今回はデーモンが不要で軽量なPodmanで構築しましたので、Kubernetesのyamlファイルを1つ作成するだけのお手軽構築です。Docker Hubの公式RedmineイメージとMariadbイメージを使用させて頂いた感じです。

構築手順を記録しておこうと思います。


Ubuntu 20.04.1 LTSのインストール

Raspberry Pi 4のOSですが。サーバとして長期間安定して使用できるように、microSDカードは使わず、USBストレージからUbuntuを起動しました。

まあチケット管理ではそれほど容量が必要ありませんが。容量8TBのHDDの価格帯はこのあたりまで下がっているのですね。ふむふむ。


Podmanのインストール

こちらの手順でPodmanをインストールします。

dockerでも動かせると思いますが。Raspberry Piということで、より軽量なPodmanで動かそうと思います。


Redmine公式イメージ

Redmineですが、ARM 64版の公式コンテナ・イメージが公開されています。

何かコンテナ起動時のパラーメタを調整したい場合、上記公式サイトを御覧ください。

データベースはARM 64版イメージが公開されているMariadbを使用させて頂きました。

PostgreSQLでも構築できると思います。以前、PostgreSQLも同様にRaspberry PiのPodmanで起動した実績があります。


Redmine起動設定

※21.1.31追記:

Podmanのバージョンアップの影響で、下記のYAMLファイルではポッドが正常に起動できない場合があります。

その場合、ポッドを手動で作成後、YAMLファイルを出力する必要が御座います。

手順は下記の記事を御覧ください。


ポッドの実行に使用する、Kubernetesのpod.yaml設定ファイルを作成します。

mkdir redmine
cd redmine
vi redmine-pod.yaml

次の内容になります。

# Generation of Kubernetes YAML is still under development!
#
# Save the output of this file and use kubectl create -f to import
# it into Kubernetes.
#
# Created with podman-2.0.6
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: "2020-09-21T09:10:29Z"
  labels:
    app: redmine-pod
  name: redmine-pod
spec:
  containers:
  - name: redmine-web
    env:
    - name: REDMINE_DB_MYSQL
      value: 127.0.0.1
    - name: REDMINE_DB_DATABASE
      value: redmine
    - name: REDMINE_DB_USERNAME
      value: redmine
    - name: REDMINE_DB_PASSWORD
      value: r3dmin3
    image: docker.io/library/redmine:latest
    ports:
    - containerPort: 3000
      hostPort: 3000
      protocol: TCP
    resources: {}
    securityContext:
      allowPrivilegeEscalation: true
      capabilities: {}
      privileged: false
      readOnlyRootFilesystem: false
      seLinuxOptions: {}
    workingDir: /usr/src/redmine
    volumeMounts:
    - mountPath: /usr/src/redmine/files
      name: redmine-volume
  - name: redmine-db
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: rootmine
    - name: MYSQL_DATABASE
      value: redmine
    - name: MYSQL_USER
      value: redmine
    - name: MYSQL_PASSWORD
      value: r3dmin3
    image: docker.io/library/mariadb:latest
    resources: {}
    securityContext:
      allowPrivilegeEscalation: true
      capabilities: {}
      privileged: false
      readOnlyRootFilesystem: false
      seLinuxOptions: {}
    workingDir: /
    volumeMounts:
    - mountPath: /var/lib/mysql
      name: db-volume
  volumes:
  - name: redmine-volume
    hostPath:
      path: /home/ubuntu/redmine/redmine
      type: Directory
  - name: db-volume
    hostPath:
      path: /home/ubuntu/redmine/mysql
      type: Directory
status: {}

いつもの通り、mariadbデータベースは/var/lib/mysqlディレクトリを永続化しています。Redmineは/usr/src/redmine/filesディレクトリを永続化していますが、基本的にコンテンツはすべてデータベースに入るようですので、永続化しなくても動く感じがします。

それではkubernetesを再生(play)してポッドを起動します。

sudo podman play kube ./redmine-pod.yaml

このような感じで、MariadbとRedmineのコンテナイメージが起動しました。


WebブラウザでRedmineへアクセスします。

http://<Raspberry PiのIPアドレス>:3000

初期ログインユーザ/パスワードはadmin/adminのようです。

ログイン後初期設定を行いましょう。

このような感じで、Redmineの初期設定が完了して、プロジェクトの追加やチケット管理ができるようになりました。

ポッドの停止は次のコマンドになります。

sudo podman pod stop redmine-pod;sudo podman pod rm redmine-pod

Redmineサーバですが、DockerやPodmanのようなコンテナ管理システムを使わないで構築しようとすると、結構大変だった気がします。

2020年9月現在、yamlファイルを1つ作るだけで起動できる時代になりました。

ディスプレイ・マウス・キーボードが必要ないわゆる「サーバ・ハードウェア」が必要という時代でもなく、Raspberry PiのようなARMアーキテクチャのシングルボード・コンピュータで、数分で構築できてしまうのですね。

電気代も節約できますし。

チケット管理が必要でしたら、宜しければお試し下さい。

スポンサーリンク

フォローする

スポンサーリンク