Podによる構成
Podと役割
Pod名 | ホスト名(コンテナ) | 用途/サービス | ポート公開 |
---|---|---|---|
pod-nginx |
nginx.flexisip |
リバースプロキシ (Let’s Encrypt対応) | 9080 , 9443 |
pod-apache |
apache.flexisip |
HTTPファイル転送サーバ (HFT) | 8080 , 8443 |
pod-php-fpm |
php-fpm.flexisip |
LaravelベースのAccount Manager | 9000 |
pod-mariadb |
mariadb.flexisip |
データベース (MariaDB) | 3306 |
pod-phpmyadmin |
phpmyadmin.flexisip |
DB管理ツール | 9000 (Nginx経由) |
pod-redis |
redis.flexisip |
Redisキャッシュ | 6379 |
pod-flexisip |
sip-proxy.flexisip |
Flexisipコア (SIP/UDP対応) | 5060 , 5061 , 3478 , 10000-10500/UDP |
Network
$ podman network create \
--subnet 10.8.8.0/24 \
--ip-range 10.8.8.0/24 \
--gateway 10.8.8.1 \
--ipv6 \
--subnet fd6c::8::/64 \
--gateway fd6c::8::1 \
net.flexisip
pod-redis
$ podman pod create \
--name pod-redis \
--hostname redis.flexisip \
--network net.flexisip \
--ip 10.8.8.2 \
--ip6 fd6c::8::2 \
-p 127.0.0.1:6379:6379
$ podman create \
--name redis \
--pod pod-redis \
--restart=always \
-v $(pwd)/redis:/etc/redis \
redis:alpine \
redis-server /etc/redis/redis.conf
$ echo 'vm.overcommit_memory=1' | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p
pod-nginx
$ podman pod create \
--name pod-nginx \
--hostname nginx.flexisip \
--network net.flexisip \
--ip 10.8.8.3 \
--ip6 fd6c::8::3 \
-p 8080:80 \
-p 8443:443
$ podman create \
--name nginx \
--pod pod-nginx \
--restart=always \
-v $(pwd)/nginx:/etc/nginx/conf.d \
-v $(pwd)/letsencrypt:/etc/letsencrypt \
-v $(pwd)/flexisip-account-manager/flexiapi:/var/www/html/flexiapi \
-v phpmyadmin:/var/www/html/phpmyadmin \
-v $(pwd)/lime-server/lime:/var/www/html/lime \
nginx:alpine
pod-apache
$ podman pod create \
--name pod-apache \
--hostname apache.flexisip \
--network net.flexisip \
--ip 10.8.8.4 \
--ip6 fd6c::8::4 \
-p 9080:80 \
-p 9443:443
$ podman create \
--name apache \
--pod pod-apache \
--restart=always \
-v $(pwd)/apache/httpd_ft.conf:/usr/local/apache2/conf/httpd.conf \
-v $(pwd)/apache/extra/httpd-ssl.conf:/usr/local/apache2/conf/extra/httpd-ssl.conf \
-v $(pwd)/letsencrypt:/etc/letsencrypt \
-v $(pwd)/hft:/opt/belledonne-communications/share/flexisip-http-file-transfer-server \
-v $(pwd)/hft-tmp:/var/opt/belledonne-communications/flexisip-http-file-transfer-tmp \
-v $(pwd)/hft_conf/flexisip-http-file-transfer-server.conf:/etc/flexisip-http-file-transfer-server/flexisip-http-file-transfer-server.conf \
-v $(pwd)/log/flexisip-http-file-transfer-server.log:/var/opt/belledonne-communications/log/flexisip-http-file-transfer-server.log \
httpd:alpine
pod-mariadb
$ podman pod create \
--name pod-mariadb \
--hostname mariadb.flexisip \
--network net.flexisip \
--ip 10.8.8.5 \
--ip6 fd6c::8::5 \
-p 127.0.0.1:3306:3306
$ podman create \
--pod pod-mariadb \
--name mariadb \
--restart=always \
--env-file $(pwd)/.env \
-v $(pwd)/db:/var/lib/mysql \
mariadb:11.7 \
--event-scheduler=ON \
--max-connections=300
pod-flexisip
$ podman pod create \
--name pod-flexisip \
--hostname sip-proxy.flexisip \
--network host
$ podman build -f $(pwd)/docker_files/flex-from-ubuntu22-apt-repo-24 -t ubuntu-flexisip:20250514 $(pwd)/docker_files
$ podman create \
--pod pod-flexisip \
--name flexisip \
--restart=always \
-v $(pwd)/letsencrypt:/etc/letsencrypt \
-v $(pwd)/flexisip_conf:/etc/flexisip \
-v $(pwd)/linphone:/root/.local/share/linphone \
-v $(pwd)/tmp/ld:/tmp/ld \
-v $(pwd)/firebase/flexisip-push-notification-firebase-adminsdk-fbsvc-xxxxxxxx.json:/etc/flexisip/flexisip-push-notification-firebase-adminsdk-fbsvc-xxxxxxxx.json \
ubuntu-flexisip:20250514 ""
pod-php-fpm
$ podman pod create \
--name pod-php-fpm \
--hostname php-fpm.flexisip \
--network net.flexisip \
--ip 10.8.8.6 \
--ip6 fd6c::8::6
$ podman build -f $(pwd)/docker_files/php-fpm-alpine-laravel -t php-fpm-8.2:20250514 $(pwd)
$ podman create \
--pod pod-php-fpm \
--name php-fpm \
--restart=always \
-v $(pwd)/php-fpm_conf/php.ini:/usr/local/etc/php/php.ini \
-v $(pwd)/flexisip-account-manager/flexiapi:/var/www/html/flexiapi \
-v $(pwd)/xmlrpc:/opt/belledonne-communications/share/flexisip-account-manager/xmlrpc \
-v $(pwd)/tmp/ld:/tmp/ld \
-v /run/user/1000/podman/podman.sock:/run/user/1000/podman/podman.sock \
-v $(pwd)/firebase/flexisip-push-notification-firebase-adminsdk-fbsvc-xxxxxxxx.json:/etc/flexisip/flexisip-push-notification-firebase-adminsdk-fbsvc-xxxxxxxx.json \
-v $(pwd)/hft:/opt/belledonne-communications/share/flexisip-http-file-transfer-server \
-v $(pwd)/hft-tmp:/var/opt/belledonne-communications/flexisip-http-file-transfer-tmp \
-v $(pwd)/hft_conf/flexisip-http-file-transfer-server.conf:/etc/flexisip-http-file-transfer-server/flexisip-http-file-transfer-server.conf \
-v $(pwd)/log/flexisip-pusher.log:/var/opt/belledonne-communications/log/flexisip/flexisip-pusher.log \
-v $(pwd)/log/flexisip-http-file-transfer-server.log:/var/opt/belledonne-communications/log/flexisip-http-file-transfer-server.log \
-v $(pwd)/lime-server/lime:/var/www/html/lime \
-v $(pwd)/lime-server/lime-server.conf:/etc/lime-server/lime-server.conf \
-v $(pwd)/lime-server/log/lime-server:/var/opt/belledonne-communications/log/lime-server \
-v $(pwd)/log/php_errors.log:/var/log/php/php_errors.log \
php-fpm-8.2:20250514
pod-phpmyadmin
$ podman pod create \
--name pod-phpmyadmin \
--hostname phpmyadmin.flexisip \
--network net.flexisip \
--ip 10.8.8.7 \
--ip6 fd6c::8::7
$ podman volume create phpmyadmin
$ podman create \
--pod pod-phpmyadmin \
--name phpmyadmin \
--restart=always \
-e PMA_HOST=mariadb.flexisip \
-e PMA_PORT=3306 \
-e PMA_ABSOLUTE_URI=http://localhost/phpmyadmin \
-v phpmyadmin:/var/www/html \
-v /sessions \
phpmyadmin/phpmyadmin:fpm-alpine
上記一連のコマンドでPodを作成し内部にコンテナを配置したらPodman-Desktopで各Podをスタートします。
Podリスト
コンテナリスト
podman composeによるコンテナ運用からpodによる運用へ移行した場合、NginxのFast_CGIパス、Redis、MariaDBへのIPなどを再設定する必要があります。以下再設定が必要なファイルです。
flexisip-account-manager/flexiapi/.env
nginx/default.conf
nginx/lime.conf
lime-server/lime-server.conf
hft_conf/flexisip-http-file-transfer-server.conf
リモート操作
podman(desktop)からのリモート操作については下記参照。