Table of Contents
PodmanでRedmine(+MariaDB)を構築
コンテナ関連のモジュールをインストール
podmanを参照
RedmineとDBの公式イメージを取得
# podman pull docker.io/library/redmine:4.2.4
# podman pull docker.io/library/mariadb
結果を確認
# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/mariadb latest daf0f023c28d 31 hours ago 421 MB
docker.io/library/redmine 4.2.4 1b9992f60aa3 6 weeks ago 547 MB
イメージの基本情報を確認
# podman inspect docker.io/library/redmine:4.2.4
# podman inspect docker.io/library/mariadb:latest
作業フォルダを作成
# mkdir /usr/local/redmine
# cd /usr/local/redmine
永続化用のフォルダ作成
# mkdir -p /usr/local/redmine/data/plugins
# mkdir -p /usr/local/redmine/data/themes
# mkdir -p /usr/local/redmine/data/files
# mkdir -p /usr/local/redmine/data/db
Pod を作成
# podman pod create -p 3000:3000 --name redmine-pod
066d26409b1d91b22942aa806523e060413a61187594440b54a6233772c9d9f9
3000番はRedmine用のLISTENポート番号です。
結果を確認
[root@sent redmine]# podman pod ls
POD ID NAME STATUS CREATED INFRA ID # OF CONTAINERS
066d26409b1d redmine-pod Created About a minute ago e98c4e319c3a 1
DBの永続化に使用するフォルダのボリューム作成
# podman volume create -o type=none -o device=/usr/local/redmine/data/db -o o=bind datastore
結果確認
# podman volume ls
DBのコンテナ作成
cofファイル使用版
cofファイルを準備
# mkdir -p /usr/local/redmine/data/conf/mysql/conf.d
# vi /usr/local/redmine/data/conf/mysql/conf.d/multibyte.cnf
-----------------------------------------------
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
-----------------------------------------------
DBのコンテナ作成
podman run --name=redmine-db -d --pod redmine-pod \
--env='MYSQL_DATABASE=redmine' \
--env='MYSQL_ROOT_PASSWORD=redmine' \
--env='MYSQL_USER=hoge' \
--env='MYSQL_PASSWORD=(パスワード))' \
-v datastore:/var/lib/mysql \
-v /usr/local/redmine/data/conf/mysql/conf.d:/etc/mysql/conf.d \
docker.io/library/mariadb
cofファイル使用しない版
DBのコンテナ作成
podman run --name=redmine-db -d --pod redmine-pod \
--env='MYSQL_DATABASE=redmine' \
--env='MYSQL_ROOT_PASSWORD=redmine' \
--env='MYSQL_USER=hoge' \
--env='MYSQL_PASSWORD=(パスワード)' \
-v datastore:/var/lib/mysql \
docker.io/library/mariadb --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
結果を確認
# podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e98c4e319c3a k8s.gcr.io/pause:3.5 17 minutes ago Up 56 seconds ago 0.0.0.0:3000->3000/tcp 066d26409b1d-infra
032a14edfe96 docker.io/library/mariadb:latest mariadbd 58 seconds ago Up 56 seconds ago 0.0.0.0:3000->3000/tcp redmine-db
LOGを確認
# podman logs redmine-db
文字コードの確認
# podman exec -it redmine-db bash
/# mysql -u root -p
> show variables like '%char%';
> show create database redmine;
> exit
/# exit
Readmineのコンテナ作成
podman run --name=redmine -d --pod redmine-pod \
--env='REDMINE_DB_MYSQL=127.0.0.1' \
--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
結果を確認
# 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
032a14edfe96 docker.io/library/mariadb:latest mariadbd 12 minutes ago Up 12 minutes ago 0.0.0.0:3000->3000/tcp redmine-db
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
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
/etc/systemd/system/container-redmine-db.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.
Created symlink /etc/systemd/system/default.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 volume ls
-
ボリューム を削除
podman volume rm --all
-
ポッドの起動
podman play kube ./redmine-pod.yaml
※[podman play kube]でポッドの起動するとボリュームの再利用の方法がわからなかったので未使用の予定
ネットワーク制限[未実施]
想定した動作をしないので未実施[最新版に期待?]
ポートのオープン
※実施しなくても接続できたので保留中
# firewall-cmd --permanent --zone=public --add-port=3000/tcp --permanent
# firewall-cmd --reload
# firewall-cmd --list-all-zones