変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

MariaDB

[podman]AlmaLinux9+mariaDB

podmanでAlmaLinux9のイメージに

普通にmariaDBをインストする手順でDockerfileを作ってみる。

起動コマンドはsystemctlを使う都合上systemdが起動しないといけないので、”/sbin/init”になる。

どういう訳かコンテナ作成時に”/sbin/init”を指定してもダメなので、Dockerfileで指定する。

FROM  almalinux:latest
RUN   dnf -y update
RUN   dnf -y install mariadb mariadb-server
COPY  carset.cnf /etc/my.cnf.d/charset.cnf
RUN   systemctl enable mariadb
RUN   dnf clean all;
# 
EXPOSE 3306
CMD [ "/sbin/init" ]

How to run systemd in a containerでググってみると

–systemd=trueオプションで/sbin/initが使えるハズだけど、今はデフォになっていて、

DocerfileのCMDが systemd または init の場合に ※コンテナのCMDの場合は除外っぽい

  • /run
  • /run/lock
  • /tmp
  • /sys/fs/cgroup/systemd
  • /var/lib/journal

にtmpfs マウント ポイントを設定し、デフォルトの停止信号も SIGRTMIN+3 に変える様でSELinuxが有効な場合はホスト側でcgroupアクセス許可が必須になるから、ホスト側とコンテナ側で同じサービスが動いてる場合はマルチインスタンス風に設定した方がいいかもしれない。

# setsebool -P container_manage_cgroup true

コピー元のデータベースのキャラセットの設定ファイルを作る

[mysqld]
character-set-server = utf8mb4

[client]
default-character-set = utf8mb4

でイメージを作ってみる。

# podman build -t almalinux9_mariadb .
STEP 1/8: FROM almalinux:latest
STEP 2/8: RUN   dnf -y update
AlmaLinux 9 - AppStream                         5.4 MB/s |  15 MB     00:02    
AlmaLinux 9 - BaseOS                            2.8 MB/s |  17 MB     00:06    
AlmaLinux 9 - Extras                             12 kB/s |  13 kB     00:01    
Dependencies resolved.
・・・
Upgraded:
  glibc-2.34-125.el9_5.3.alma.1.x86_64                                          
  glibc-common-2.34-125.el9_5.3.alma.1.x86_64                                   
  glibc-minimal-langpack-2.34-125.el9_5.3.alma.1.x86_64                         
  libxml2-2.9.13-6.el9_5.2.x86_64                                               
  systemd-252-46.el9_5.3.alma.1.x86_64                                          
  systemd-libs-252-46.el9_5.3.alma.1.x86_64                                     
  systemd-pam-252-46.el9_5.3.alma.1.x86_64                                      
  systemd-rpm-macros-252-46.el9_5.3.alma.1.noarch                               
  tzdata-2025b-1.el9.noarch                                                     

Complete!
--> a2b577abfca6
STEP 3/8: RUN   dnf -y install mariadb mariadb-server
Last metadata expiration check: 0:00:19 ago on Wed Apr  2 17:57:08 2025.
Dependencies resolved.
・・・
Installed:
・・・
  mariadb-3:10.5.27-1.el9_5.x86_64                                              
  mariadb-backup-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-common-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-connector-c-3.2.6-1.el9_0.x86_64                                      
  mariadb-connector-c-config-3.2.6-1.el9_0.noarch                               
  mariadb-errmsg-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-gssapi-server-3:10.5.27-1.el9_5.x86_64                                
  mariadb-server-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-server-utils-3:10.5.27-1.el9_5.x86_64                                 
  mysql-selinux-1.0.13-1.el9_5.noarch                                           
・・・
Complete!
--> daf71bdc14ab
STEP 4/8: COPY  carset.cnf /etc/my.cnf.d/charset.cnf
--> a96ac4f1bfb3
STEP 5/8: RUN   systemctl enable mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
--> 50f6b0d16b83
STEP 6/8: RUN   dnf clean all;
26 files removed
--> 4aa9969087df
STEP 7/8: EXPOSE 3306
--> ac9094cd3dad
STEP 8/8: CMD [ "/sbin/init" ]
COMMIT almalinux9_mariadb
--> 7a06b67a56a2
Successfully tagged localhost/almalinux9_mariadb:latest
7a06b67a56a2ff8c30a436a53a64735ff9f04780b1c4649c06584f5d99327929
# STEP 1/8: FROM almalinux:latest
STEP 2/8: RUN   dnf -y update
AlmaLinux 9 - AppStream                         5.4 MB/s |  15 MB     00:02    
AlmaLinux 9 - BaseOS                            2.8 MB/s |  17 MB     00:06    
AlmaLinux 9 - Extras                             12 kB/s |  13 kB     00:01    
Dependencies resolved.
・・・
Upgraded:
  glibc-2.34-125.el9_5.3.alma.1.x86_64                                          
  glibc-common-2.34-125.el9_5.3.alma.1.x86_64                                   
  glibc-minimal-langpack-2.34-125.el9_5.3.alma.1.x86_64                         
  libxml2-2.9.13-6.el9_5.2.x86_64                                               
  systemd-252-46.el9_5.3.alma.1.x86_64                                          
  systemd-libs-252-46.el9_5.3.alma.1.x86_64                                     
  systemd-pam-252-46.el9_5.3.alma.1.x86_64                                      
  systemd-rpm-macros-252-46.el9_5.3.alma.1.noarch                               
  tzdata-2025b-1.el9.noarch                                                     

Complete!
--> a2b577abfca6
STEP 3/8: RUN   dnf -y install mariadb mariadb-server
Last metadata expiration check: 0:00:19 ago on Wed Apr  2 17:57:08 2025.
Dependencies resolved.
・・・
Installed:
・・・
  mariadb-3:10.5.27-1.el9_5.x86_64                                              
  mariadb-backup-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-common-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-connector-c-3.2.6-1.el9_0.x86_64                                      
  mariadb-connector-c-config-3.2.6-1.el9_0.noarch                               
  mariadb-errmsg-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-gssapi-server-3:10.5.27-1.el9_5.x86_64                                
  mariadb-server-3:10.5.27-1.el9_5.x86_64                                       
  mariadb-server-utils-3:10.5.27-1.el9_5.x86_64                                 
  mysql-selinux-1.0.13-1.el9_5.noarch                                           
・・・
Complete!
--> daf71bdc14ab
STEP 4/8: COPY  carset.cnf /etc/my.cnf.d/charset.cnf
--> a96ac4f1bfb3
STEP 5/8: RUN   systemctl enable mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.
--> 50f6b0d16b83
STEP 6/8: RUN   dnf clean all;
26 files removed
--> 4aa9969087df
STEP 7/8: EXPOSE 3306
--> ac9094cd3dad
STEP 8/8: CMD [ "/sbin/init" ]
COMMIT almalinux9_mariadb
--> 7a06b67a56a2
Successfully tagged localhost/almalinux9_mariadb:latest
7a06b67a56a2ff8c30a436a53a64735ff9f04780b1c4649c06584f5d99327929

無事出来上がったのでコンテナを作って起動してみる

# podman run -d -it --name almalinux9_mariadb_contener \
 -p 3306:3306 \
 -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=1 \
 -v '{データベース保存ディレクトリィ※事前作成済}:/var/lib/mysql' \
 almalinux9_mariadb
900c3b58d5e7147e888f03674392df4fd6293de21d8c45a36e9ccda7c89fa50a

ログを見ると ※動作環境に依存

[FAILED] Failed to start MariaDB 10.5 database server.

See 'systemctl status mariadb.service' for details.

不穏な雰囲気が・・・

# podman exec almalinux9_mariadb_contener systemctl status mariadb.service
# mariadb.service - MariaDB 10.5 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: disabled)
     Active: failed (Result: exit-code) since Wed 2025-04-02 16:46:32 UTC; 2min 7s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 23 ExecStartPre=/usr/libexec/mariadb-check-socket (code=exited, status=0/SUCCESS)
    Process: 46 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir mariadb.service (code=exited, status=1/FAILURE)
        CPU: 349ms

Apr 02 16:46:32 90b2f5aeb4b0 mariadb-prepare-db-dir[112]: chown: changing ownership of '/var/lib/mysql': Operation not permitted
Apr 02 16:46:32 90b2f5aeb4b0 mariadb-prepare-db-dir[87]: Cannot change ownership of the database directories to the 'mysql'
Apr 02 16:46:32 90b2f5aeb4b0 mariadb-prepare-db-dir[87]: user.  Check that you have the necessary permissions and try again.
Apr 02 16:46:32 90b2f5aeb4b0 mariadb-prepare-db-dir[46]: Initialization of MariaDB database failed.
Apr 02 16:46:32 90b2f5aeb4b0 mariadb-prepare-db-dir[46]: Perhaps /etc/my.cnf is misconfigured or there is some problem with permissions of /var/lib/mysql.
Apr 02 16:46:32 90b2f5aeb4b0 mariadb-prepare-db-dir[46]: Initialization of MariaDB database was not finished successfully.
Apr 02 16:46:32 90b2f5aeb4b0 mariadb-prepare-db-dir[46]: Files created so far will be removed.
Apr 02 16:46:32 90b2f5aeb4b0 systemd[1]: mariadb.service: Control process exited, code=exited, status=1/FAILURE
Apr 02 16:46:32 90b2f5aeb4b0 systemd[1]: mariadb.service: Failed with result 'exit-code'.
Apr 02 16:46:32 90b2f5aeb4b0 systemd[1]: Failed to start MariaDB 10.5 database server.

MariaDB が起動しない場合の対処方法 でググってみると、

ディレクトリィのオーナが気に入らないダケみたいなのでchown -R mysql:mysqlで丸ごと更新。

# podman exec almalinux9_mariadb_contener chown -R mysql:mysql /var/lib/mysql
# podman exec almalinux9_mariadb_contener systemctl start mariadb
# podman exec almalinux9_mariadb_contener systemctl status mariadb.service
● mariadb.service - MariaDB 10.5 database server
     Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: disabled)
     Active: active (running) since Wed 2025-04-02 16:51:09 UTC; 18s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 120 ExecStartPre=/usr/libexec/mariadb-check-socket (code=exited, status=0/SUCCESS)
    Process: 142 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir mariadb.service (code=exited, status=0/SUCCESS)
    Process: 251 ExecStartPost=/usr/libexec/mariadb-check-upgrade (code=exited, status=0/SUCCESS)
   Main PID: 230 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 20 (limit: 1638)
     Memory: 75.5M
        CPU: 1.081s
     CGroup: /system.slice/mariadb.service
             └─230 /usr/libexec/mariadbd --basedir=/usr

Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: The second is mysql@localhost, it has no password either, but
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: you need to be the system 'mysql' user to connect.
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: After connecting you can set the password, if you would need to be
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: able to connect as any of these users with a password and without sudo
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: See the MariaDB Knowledgebase at https://mariadb.com/kb
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: Please report any problems at https://mariadb.org/jira
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: The latest information about MariaDB is available at https://mariadb.org/.
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: Consider joining MariaDB's strong and vibrant community:
Apr 02 16:51:08 90b2f5aeb4b0 mariadb-prepare-db-dir[181]: https://mariadb.org/get-involved/
Apr 02 16:51:09 90b2f5aeb4b0 systemd[1]: Started MariaDB 10.5 database server.

無事起動できたらしい。

# ls -l mysql
total 122920
-rw-rw---- 1 100026 100026     24576 Apr  3 01:51 aria_log.00000001
-rw-rw---- 1 100026 100026        52 Apr  3 01:51 aria_log_control
-rw-rw---- 1 100026 100026       972 Apr  3 01:51 ib_buffer_pool
-rw-rw---- 1 100026 100026 100663296 Apr  3 01:51 ib_logfile0
-rw-rw---- 1 100026 100026  12582912 Apr  3 01:51 ibdata1
-rw-rw---- 1 100026 100026  12582912 Apr  3 01:51 ibtmp1
-rw-rw---- 1 100026 100026         0 Apr  3 01:51 multi-master.info
drwx------ 2 100026 100026      4096 Apr  3 01:51 mysql
srwxrwxrwx 1 100026 100026         0 Apr  3 01:51 mysql.sock
-rw-rw---- 1 100026 100026        16 Apr  3 01:51 mysql_upgrade_info
drwx------ 2 100026 100026        20 Apr  3 01:51 performance_schema

mysql.sockが0バイトなのが気になるが、mariadbコマンドが使えるかな?

# podman exec -it almalinux9_mariadb_contener mariadb
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 10.5.27-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.001 sec)

MariaDB [(none)]> show variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.003 sec)

MariaDB [(none)]> exit
Bye
# 

なので多分OK。

でも【停止】させた表示が少し気になるので コンテナに-it は付けない方がいいかも。

         Unmounting /etc/hostname...
         Unmounting /etc/hosts...
         Unmounting /etc/resolv.conf...
         Unmounting /run/.containerenv...
         Unmounting /run/lock...
         Unmounting /run/secrets...
         Unmounting Temporary Directory /tmp...
         Unmounting /var/lib/mysql...
         Unmounting var-log-journal.mount...
[FAILED] Failed unmounting /etc/hostname.
[FAILED] Failed unmounting /etc/hosts.
[FAILED] Failed unmounting /etc/resolv.conf.
[FAILED] Failed unmounting /run/.containerenv.
[FAILED] Failed unmounting /run/lock.
[FAILED] Failed unmounting /run/secrets.
[FAILED] Failed unmounting Temporary Directory /tmp.
[FAILED] Failed unmounting /var/lib/mysql.
[FAILED] Failed unmounting var-log-journal.mount.
[  OK  ] Stopped target Swaps.
[  OK  ] Reached target System Shutdown.
[  OK  ] Reached target Unmount All Filesystems.
[  OK  ] Reached target Late Shutdown Services.
         Starting System Halt...
Sending SIGTERM to remaining processes...
Sending SIGKILL to remaining processes...
All filesystems, swaps, loop devices, MD devices and DM devices detached.
Halting system.
Exiting container.
 disconnected 


[WordPress]podmanでサイトを作る

cockpitのpodmanアプリケーションを使うと毎回画面でチョコマカと手入力が必要なので今回はpodmanをコマンドラインから使ってサイトを作ってみる。

1.podの作成

podを作る際に、ホストのポートからコンテナのポートへの転送も指定する。

ついでに外部へのポート開放もする。

# podman pod create -p 20080:80 -p 20443:443 -p 20090:8090 --name wordpress_pod
cee956541b051b84e15e7ac5e347a6aeb572b0aef16084954818e725f038cb1b

# firewall-cmd --add-port=20080/tcp --permanent ※永続的解放
# firewall-cmd --add-port=20443/tcp --permanent ※永続的解放
# firewall-cmd --add-port=20090/tcp --permanent ※永続的解放 phpMyAdmin用
# firewall-cmd --reload
# firewall-cmd --list-all ※設定を確認

※2025/4/1 phpMyAdminの設定を追記

2.イメージのダウンロード

mariaDBとwordpressのイメージをダウンロードする

# podman pull docker.io/mariadb:latest
Trying to pull docker.io/library/mariadb:latest...
Getting image source signatures
Copying blob 597f7afe50fe done   | 
Copying blob 5a7813e071bf done   | 
Copying blob 5db80086e4da done   | 
Copying blob bdecd990c29c done   | 
Copying blob 901fe9394c00 done   | 
Copying blob 43eb19e1b102 done   | 
Copying blob e1dede558384 done   | 
Copying blob 5c3a22df929b done   | 
Copying config a914eff5d2 done   | 
Writing manifest to image destination
a914eff5d2eb4c650a4e787e453d52a4ffba977632bd624cc6e63d0c9c4c2d65

# podman pull docker.io/wordpress:latest
Trying to pull docker.io/library/wordpress:latest...
Getting image source signatures
Copying blob e4ca7ebe0914 done   | 
Copying blob 6e909acdb790 done   | 
Copying blob dacb60b59038 done   | 
Copying blob 5db2c4b6137b done   | 
Copying blob 64450047668b done   | 
Copying blob 4d6386e035f7 done   | 
Copying blob 3dc5d9089396 done   | 
Copying blob 1778f52baa09 done   | 
Copying blob a5d9cb1c80ec done   | 
Copying blob b116c8459f57 done   | 
Copying blob 8f8ddda3587a done   | 
Copying blob f432ea27fc70 done   | 
Copying blob 6a5a37a900f3 done   | 
Copying blob 4f4fb700ef54 done   | 
Copying blob 57c6ea19af98 done   | 
Copying blob ae777a0ca433 done   | 
Copying blob 5f19650adea9 done   | 
Copying blob 177323f85a94 done   | 
Copying blob fe638a1d1db7 done   | 
Copying blob f4abcace8187 done   | 
Copying blob 729bf49a9314 done   | 
Copying blob cac8b814902b done   | 
Copying config 52bb3e7315 done   | 
Writing manifest to image destination
52bb3e73152ae8a92ef5a7d0589d923aa3c46538c8494b644b8cf2f5ceba2d37

# podman pull docker.io/phpmyadmin:latest
Trying to pull docker.io/library/phpmyadmin:latest...
Getting image source signatures
Copying blob 6e909acdb790 skipped: already exists  
Copying blob 64450047668b skipped: already exists  
Copying blob 4d6386e035f7 skipped: already exists  
Copying blob e4ca7ebe0914 skipped: already exists  
Copying blob dacb60b59038 skipped: already exists  
Copying blob a5d9cb1c80ec skipped: already exists  
Copying blob 1778f52baa09 skipped: already exists  
Copying blob 3dc5d9089396 skipped: already exists  
Copying blob b116c8459f57 skipped: already exists  
Copying blob 8f8ddda3587a skipped: already exists  
Copying blob 6a5a37a900f3 skipped: already exists  
Copying blob 4f4fb700ef54 skipped: already exists  
Copying blob f432ea27fc70 skipped: already exists  
Copying blob 2356864ac4b9 done   | 
Copying blob 28fa232eddfc done   | 
Copying blob a084403b2fe2 done   | 
Copying blob 69286ddc9ea5 done   | 
Copying blob 21d6bc6af9fd done   | 
Copying blob 5db2c4b6137b skipped: already exists  
Copying blob 5fb8db322bbb done   | 
Copying config 052506f2de done   | 
Writing manifest to image destination
052506f2de4d5532efb7c1b24b9a4311d6b5ccef006e344449f8fe633d3bbacc

※2025/4/1 phpMyAdminの設定を追記

podman diff イメージ名 で1つ1つファイル構成を見るものいいけど、

podman inspect イメージ名 の方が楽な気がする。

# podman inspect mariadb:latest
# podman inspect wordpress:latest 
# podman inspect phpmyadmin:latest

※2025/4/1 phpMyAdminの設定を追記

3.コンテナの設定

https://hub.docker.com/_/mariadb でmariadbコンテナで設定する環境変数等を調べ、コンテナを作成し実行する。

"Volumes": {
    "/var/lib/mysql": {}
},
# podman run -d \
    --pod wordpress_pod \
    --name mariadb \
    --restart=unless-stopped \
    -e MARIADB_RANDOM_ROOT_PASSWORD=1 \
    -e MARIADB_USER={WordPressで使うユーザ名} \
    -e MARIADB_PASSWORD={WordPressで使うユーザのパスワード} \
    -e MARIADB_DATABASE={WordPressで使うデータベース名} \
    -e TZ=Asia/Tokyo \
    -v {データベースを保存する作成済みの空ディレクトリィ}:/var/lib/mysql \
    wordpress:latest

とりあえずwordpressイメージにcerbotをインストしたイメージを作成 ※追記 2025/4/1

FROM wordpress:latest
RUN apt update -y
RUN apt install -y certbot python3-certbot-apache
RUN apt clean                     ※キャッシュ消去
RUN rm -rf /var/lib/apt/lists/*   ※ログ消去
podman build -t wordpress_certbot .

https://hub.docker.com/_/wordpress でwordpressコンテナで設定する環境変数等を調べ、コンテナを作成し実行する

"WorkingDir": "/var/www/html",
# podman run -d \
    --pod wordpress_pod \
    --name wordpress \
    --restart=unless-stopped \
    -e WORDPRESS_DB_NAME={WordPressで使うデータベース名} \
    -e WORDPRESS_DB_USER={WordPressで使うユーザ名} \
    -e WORDPRESS_DB_PASSWORD={WordPressで使うユーザのパスワード} \
    -e WORDPRESS_DB_HOST={mariaDBのコンテナ名} \
    -v {wordpressのhtmlを保存する作成済みの空ディレクトリィ}:/var/www/html  \
    wordpress_certbot 

ブラウザで、http://{podmanをインストしたホストのIPアドレス}:20080 を開くと

が見れる(ハズ。

さらに必須情報を行い、

【WordPressをインストール】ボタンを押し

となれば、後はログインでジャンプして

先のユーザ名とパスワードを入力して【ログイン】ボタンを押すと

が見れる(ハズ

cockpit-podmanで出来上がりを見ると

※既にpod終了済

ここでworspress_podの右端の縦点なメニューで起動とか終了で簡単に運用。

バックアップするディレクトリィは、上の -v オプションで指定したディレクトリィの2つ。

-v {データベースを保存する作成済みの空ディレクトリィ}:   ※コンテナ上のパスは/var/lib/mysql
-v {wordpressのhtmlを保存する作成済みの空ディレクトリィ}: ※コンテナ上のパスは/var/www/html

ps.2025/3/31

SSLについて

コンテナのOSを調べたら

# podman exec -ti wordpress /bin/bash
# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"

Debian 12らしい、ググってみると

# apt install -y certbot python3-certbot-apache

でうまくいくらしいのでwordpress_cerbotイメージを作った。

コンテナを作る度にcerbotのインストを繰り返さずに済むらしい。

この時点ではまだcerbotの初期設定は行っていないので、WANから接続できる状況にした上で初期設定を行い、

# podman exec -ti wordpress /bin/bash
# certbot run

成功したら、いつもの様にコンテナを再起動して本当に大丈夫なのか?(要確認

ps.2025/4/1

phpMyAdminを忘れていた。残念だが、wordpressのaptリポジトリィを調べてみると

  • cat /etc/apt/sources.list.d/debian.sources
    • http://snapshot.debian.org/archive/debian/
    • http://snapshot.debian.org/archive/debian-security/

しかないので、wordpressイメージにphpMyAdmin付きのDockerfileでbuildしてもエラってしまうので

# podman pull docker.io/phpmyadmin:latest
Trying to pull docker.io/library/phpmyadmin:latest...
Getting image source signatures
Copying blob 6e909acdb790 skipped: already exists  
Copying blob 64450047668b skipped: already exists  
Copying blob 4d6386e035f7 skipped: already exists  
Copying blob e4ca7ebe0914 skipped: already exists  
Copying blob dacb60b59038 skipped: already exists  
Copying blob a5d9cb1c80ec skipped: already exists  
Copying blob 1778f52baa09 skipped: already exists  
Copying blob 3dc5d9089396 skipped: already exists  
Copying blob b116c8459f57 skipped: already exists  
Copying blob 8f8ddda3587a skipped: already exists  
Copying blob 6a5a37a900f3 skipped: already exists  
Copying blob 4f4fb700ef54 skipped: already exists  
Copying blob f432ea27fc70 skipped: already exists  
Copying blob 2356864ac4b9 done   | 
Copying blob 28fa232eddfc done   | 
Copying blob a084403b2fe2 done   | 
Copying blob 69286ddc9ea5 done   | 
Copying blob 21d6bc6af9fd done   | 
Copying blob 5db2c4b6137b skipped: already exists  
Copying blob 5fb8db322bbb done   | 
Copying config 052506f2de done   | 
Writing manifest to image destination
052506f2de4d5532efb7c1b24b9a4311d6b5ccef006e344449f8fe633d3bbacc
# podman run -d \
    --pod ssiscirine_pod \
    --name phpmyadmin \
    --restart=unless-stopped \
    -e PMA_ARBITRARY=1 \
    -e PMA_HOSTS={mariadbコンテナ名} \
    -e PMA_USER={root} \
    -e PMA_PASSWORD={rootのパスワード} \ ※mariadbでrootパスワードをランダム生成した場合は毎回ログからコピペになる。
    -e APACHE_PORT=8090 \
    -v {phpMyAdminのsessionsを保存する作成済みの空ディレクトリィ}:/sessions:rw \
    phpmyadmin:latest
3dbb9be21d3b146a2430079b3e2158c5b267a751062198d400dc6594cb3dd128

※他のボリュームオプションに指定したディレクトリィはオーナが書き換わるが、このsessionsのボリュームオプションを指定した場合のディレクトリのオーナが書き換わらないので最初は888にしないとエラる。セッションファイルが作られた後は755に戻しても大丈夫っぽい。

※APACHE_PORTを付け忘れるとコンテナ同士で80ポートがコンフリクトしてしまう。

厄介なのがpodのポート変換を後付けする方法が見つからなかったので全部再生成しないといけない。

# {podの作成}
# {ポート開放}
# {mariadbコンテナの作成}     ※ログにrootのパスワード生成が載ってるか要チェック
# {wordpressコンテナの作成}
# {phpmyadminコンテナの作成} ※rootのパスワードを修正が必要な場合もある

それは嫌な場合は、wordpressコンテナからphpmyadminコンテナに転送するといいかもしれない。

# a2enmod proxy
# a2enmod proxy_http
# service apache2 restart
ProxyRequests Off
ProxyPass /phpMyAdmin/ http://phpMyAdmin:8090
ProxyPassReverse /phpMyAdmin/ http://phpMyAdmin:8090

でもLAN内でしか使わないからpodから作りなおすけどね。(笑

となると

残念ながらイメージが2.43GBに増えコンテナも315MBに増えた。



[AlmaLinux]mariaDBが動かない

再起動したら・・・

巷では放置サイトでよく見かける

WordPressのDB接続エラーの画面

journalctl -xeu mariadb.serviceで状況を見ると

最初は

No process is using /var/lib/mysql/mysql.sock, which means it is a garbage, so it will be removed automatically.

と出ていたのでロック状態かなと思って削除してみるも動かない

Database MariaDB is probably initialized in /var/lib/mysql already, nothing is done.
If this is not the case, make sure the /var/lib/mysql is empty before running mariadb-prepare-db-dir.

状況が良く解らないから初期化してね?(怖いよ

ということでログ(/var/log/mariadb/mariadb.log)を見る

[ERROR] InnoDB: Cannot replay rename of tablespace 1122 from './{DB名}/#sql-alter-317-ec.ibd' to './{DB名}/wp_wpo_404_detector.ibd' because the target file exists
[ERROR] InnoDB: Plugin initialization aborted with error Data structure corruption

というので、wp_wpo_404_detector.ibdを消したら、起動できた。

中身は空っぽだからいいか




top