使用Podman创建WordPress

Github上可能有更新的版本,请相互参照,本文会配点图方便参考

robling/iServ: Some scripts and config to manage my vps host

所有的对外服务都尽可能使用镜像提供,使用Podman驱动

文件目录结构

$ ls -l
Backup
Config
Data

运行之前

# 设置密码(用户名为你的当前用户)
export PASSWD="YOUR PASSWORD"

备份数据

# 删除上一次备份的文件
sudo rm backup.tar.gz
# 导出数据库
sudo podman exec -it db mariadb-dump -u $USER --password=$PASSWD blog > ~/Data/dump.sql
# 打包文件
sudo tar cpzf backup.tar.gz Config/ Data/
# 按时间戳归档
sudo cp backup.tar.gz ~/Backup/backup_$(date +"%Y%m%d_%H%M%S").tar.gz

恢复备份的数据

scp {user_name}@{ip_adress}:~/backup.tar.gz ~/
tar xzpvf backup.tar.gz .

创建POD以及wordpress运行需要的镜像

# 先创建一个POD
sudo podman pod create --name web -p 18046:18046 -p 80:80 -p 443:443 

# 然后依次创建caddy:latest, mariadb:latest, redis:latest和wordpress:

sudo podman run --name caddy --pod web \
  --label "io.containers.autoupdate=image" \
  -v /home/$USER/Data/caddy_data:/data:z \
  -v /home/$USER/Config/Caddyfile:/etc/caddy/Caddyfile:z \
  -v /home/$USER/Data/wordpress:/var/www/html:z \
  -d docker.io/library/caddy

sudo podman run --name db --pod web \
  --label "io.containers.autoupdate=image" \
  -e MARIADB_USER=$USER \
  -e MARIADB_PASSWORD=$PASSWD \
  -e MARIADB_DATABASE=blog \
  -e MARIADB_ROOT_PASSWORD=$PASSWD \
  -v /home/$USER/Data/mariadb:/var/lib/mysql:Z \
  -v /home/$USER/Data/dump.sql:/docker-entrypoint-initdb.d/dump.sql:z \
  -d docker.io/library/mariadb

sudo podman run --name wordpress --pod web \
  --label "io.containers.autoupdate=image" \
  -e WORDPRESS_DB_HOST=127.0.0.1 \
  -e ALLOW_EMPTY_PASSWORD=yes \
  -e WORDPRESS_DB_USER=$USER \
  -e WORDPRESS_DB_PASSWORD=$PASSWD \
  -e WORDPRESS_DB_NAME=blog \
  -v /home/$USER/Data/wordpress:/var/www/html:z \
  -d docker.io/library/wordpress:fpm

sudo podman run --name redis --pod web \
  --label "io.containers.autoupdate=image" \
  -d docker.io/library/redis:latest

确认各项服务正常

# 确认镜像都运行起来了
sudo podman ps

# 再确认下wordpress本身是否可用

使用Systemd管理服务

# 切换到systemd配置文件目录
mkdir -p ~/Config/systemd && cd "$_"

# 生成systemd config
sudo podman generate systemd --new --files --name web

# 激活systemd服务
sudo cp * /etc/systemd/system
sudo systemctl daemon-reload
sudo systemctl start pod-web

更新镜像

# 手动更新镜像
sudo podman auto-update
# 自动更新
mkdir -p ~/Config/systemd && cd "$_"
wget https://raw.githubusercontent.com/robling/iServ/refs/heads/master/Config/podman-auto-update.service.in
wget https://raw.githubusercontent.com/robling/iServ/refs/heads/master/Config/podman-auto-update.timer
sudo cp * /etc/systemd/system
sudo systemctl daemon-reload
sudo systemctl enable podman-auto-update.service
sudo systemctl enable podman-auto-update.timer

发表回复

电子邮件地址不会被公开。必填项已用 * 标注