Redmine(Podman)+MySQL

Table of Contents

PodmanでRedmine+ホストで稼働するMySQLを構築

podmanのネットワーク確認

# podman network ls
# podman network inspect podman | grep -e 'gateway' -e 'subnet'
   "gateway": "10.88.0.1",
   "subnet": "10.88.0.0/16"

MySQLの設定

インストールは、MySQL参照
アドレスは、podmanのネットワーク確認のsubnetを参考にセグメントを指定

# mysql -u root -p
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'hoge'@'10.88.0.%' IDENTIFIED BY '(パスワード)';
GRANT ALL PRIVILEGES ON redmine.* TO 'hoge'@'10.88.0.%';

RedmineとDBの公式イメージを取得

# podman pull docker.io/library/redmine:4.2.4

作業フォルダを作成

# mkdir /usr/local/redmine
# cd /usr/local/redmine
永続化用のフォルダ作成
# mkdir -p /usr/local/redmine/data/plugins
# mkdir -p /usr/local/redmine/data/files
# mkdir -p /usr/local/redmine/data/themes

Pod を作成

# podman pod create -p 3000:3000 --name redmine-pod
066d26409b1d91b22942aa806523e060413a61187594440b54a6233772c9d9f9

3000番はRedmine用のLISTENポート番号です。

Readmineのコンテナ作成

REDMINE_DB_MYSQLにMySQLが稼働するホストのアドレスを指定

podman run --name=redmine -d --pod redmine-pod \
--env='REDMINE_DB_MYSQL=192.168.1.7' \
--env='REDMINE_DB_USERNAME=hoge' \
--env='REDMINE_DB_PASSWORD=(パスワード)' \
-v /usr/local/redmine/data/plugins:/usr/src/redmine/plugins \
-v /usr/local/redmine/data/themes:/usr/src/redmine/public/themes \
-v /usr/local/redmine/data/files:/usr/src/redmine/files \
docker.io/library/redmine:4.2.4

※コンテナのIPアドレスを「--network podman --ip=10.89.0.51 」で固定化できるか、試みたが期待した動作をしなかったので断念

結果を確認

#  podman ps
CONTAINER ID  IMAGE                             COMMAND               CREATED         STATUS             PORTS                  NAMES
e98c4e319c3a  k8s.gcr.io/pause:3.5                                    29 minutes ago  Up 12 minutes ago  0.0.0.0:3000->3000/tcp 066d26409b1d-infra
517b081e0e12  docker.io/library/redmine:4.2.4   rails server -b 0...  32 seconds ago  Up 32 seconds ago  0.0.0.0:3000->3000/tcp redmine

file

LOGを確認

# podman logs redmine

systemd のUNITファイルを生成する

# cd /etc/systemd/system
# podman generate systemd --restart-policy no -n -f redmine-pod
/etc/systemd/system/pod-redmine-pod.service
/etc/systemd/system/container-redmine.service

systemd 設定を再読込する

# systemctl daemon-reload

手動によるsystemd操作を確認する

# systemctl enable pod-redmine-pod.service
Created symlink /etc/systemd/system/multi-user.target.wants/pod-redmine-pod.service → /etc/systemd/system/pod-redmine-pod.service.

サービスの起動・停止・ステータス

# systemctl start pod-redmine-pod.service
# systemctl stop pod-redmine-pod.service
# systemctl status pod-redmine-pod.service

Kubernetesのyamlファイル作成

# cd /usr/local/redmine
# podman generate kube redmine-pod > redmine-pod.yaml

ポットレベルからの再作成準備(削除)

  • 稼働しているポッドの確認

    podman pod ls
    podman ps
  • ポッドを全て終了する場合

    podman pod stop --all
  • ポッドを全て削除する場合

    podman pod rm --all
  • イメージ

    podman images
  • イメージ全て削除

    podman rmi --all
    個別に削除する場合、コンテナIDを並べて記述
  • ポッドの起動

    podman play kube ./redmine-pod.yaml

    ※[podman play kube]でポッドの起動するとボリュームの再利用の方法がわからなかったので未使用の予定

ネットワーク制限[未実施]

想定した動作をしないので未実施[最新版に期待?]

ポートのオープン

※実施しなくても接続できたので保留中

# firewall-cmd --permanent --zone=internal --add-port=3000/tcp --permanent
# firewall-cmd --reload
# firewall-cmd --list-all-zones

Pod を作成

NIC2枚刺しの環境で内向きのアドレスのみで提供したいので、ホストのIPアドレスを追加したが、期待した動作の確認ができていないので保留

# podman pod create -p192.168.1.7:3000:3000 --name redmine-pod
066d26409b1d91b22942aa806523e060413a61187594440b54a6233772c9d9f9

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です