手当たり次第に書くんだ

飽きっぽいのは本能

Podman Redmine 構築 – MySQL と Nginx を Pod でまとめる

Podman で Redmine を構築するメモです。Redmine、MySQL、Nginx を同じ Pod にまとめ、外部公開は Nginx に寄せる構成として整理します。

構成

コンテナ役割
MySQLRedmine のデータベース
Redmineアプリケーション本体
Nginxフロントのリバースプロキシ

ディレクトリ

sudo mkdir -p /opt/container/redmine/{mysql,nginx/conf.d}
sudo chown -R $USER:$USER /opt/container/redmine

Pod の作成

podman pod create   --name redmine-pod   -p 10080:80

MySQL

podman run -d --pod redmine-pod   --name redmine-mysql   -e MYSQL_ROOT_PASSWORD='change-me-root'   -e MYSQL_DATABASE=redmine   -e MYSQL_USER=redmine   -e MYSQL_PASSWORD='change-me'   -v /opt/container/redmine/mysql:/var/lib/mysql:Z   docker.io/library/mysql:8

Redmine

podman run -d --pod redmine-pod   --name redmine   -e REDMINE_DB_MYSQL=127.0.0.1   -e REDMINE_DB_DATABASE=redmine   -e REDMINE_DB_USERNAME=redmine   -e REDMINE_DB_PASSWORD='change-me'   docker.io/library/redmine:latest

Nginx

cat <<'EOF' > /opt/container/redmine/nginx/conf.d/redmine.conf
server {
    listen 80;
    server_name _;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
EOF

podman run -d --pod redmine-pod   --name redmine-nginx   -v /opt/container/redmine/nginx/conf.d:/etc/nginx/conf.d:Z,ro   docker.io/library/nginx:latest

確認

podman ps --pod
curl -I http://127.0.0.1:10080/

まとめ

Redmine を Podman で動かす場合、DB、アプリ、フロントを Pod としてひとまとまりにすると構成が読みやすくなります。実運用では systemd unit 化、バックアップ、TLS 終端、メール送信設定を追加します。

Podman Redmine 構築 – MySQL と Nginx を Pod でまとめる

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る