如何使用Podman安装和设置WordPress

sxissh06  于 2023-01-01  发布在  WordPress
关注(0)|答案(1)|浏览(237)

有了docker,我可以在几乎所有的平台上运行WordPress example进行docker-compose,而无需事先了解docker。
我在寻找一种方法来实现与Podman相同的功能。
在我的情况下,有一个快速的跨平台的方式来设置一个工作的WordPress安装开发。
由于波德曼要年轻得多,2022年的一个有效答案也将是:这是不可能的,因为....../仅可能提供约束X。
尽管如此,我还是想为其他人创造一个切入点,他们在未来遇到同样的问题。
我在下面贴出了我自己的努力。在我花更多的时间调试大量的小问题(但仍然可以解决)之前,我想看看是否有人遇到了同样的问题,并且已经有了解决方案。如果你有,请清楚地记录它的约束。

我的特殊问题,作为参考

  • 我使用的是Ubuntu 20.04,podman -v给出的是3.4.2。

1.装卸工/搬运工组合

  • 当我在docker的WordPress .yml-文件上使用docker-compose upPodman back-end时,我遇到了“重复的挂载目标”issue
  • podman-compose是Podman 4.1.0的一部分,在我写这篇文章时,它是Ubuntu上的not available

1.红帽示例

  • example of Red Hat给出“建立数据库连接时出错...无法建立与位于mysql的数据库服务器的联系”。
  • 上面的A solution对我不起作用。share 可能是一个错别字。我试图用 unshare 替换。
  1. Cent OS示例
  • 我发现了一个example,它使用pod而不是docker-compose.yml文件,但是它是为Cent操作系统编写的。
  • 我修改了Cent OS的例子,见下面的脚本。我得到了容器和运行。但是,WordPress无法连接到数据库。
#!/bin/bash

# Set environment variables:
DB_NAME='wordpress_db'
DB_PASS='mysupersecurepass'
DB_USER='justbeauniqueuser'
POD_NAME='wordpress_with_mariadb'
CONTAINER_NAME_DB='wordpress_db'
CONTAINER_NAME_WP='wordpress'

mkdir -P html
mkdir -P database

# Remove previous attempts
sudo podman pod rm -f $POD_NAME

# Pull before run, bc: invalid reference format eror
sudo podman pull mariadb:latest
sudo podman pull wordpress

# Create a pod instead of --link. So both containers are able to reach each others.
sudo podman pod create -n $POD_NAME -p 80:80

sudo podman run --detach --pod $POD_NAME \
-e MYSQL_ROOT_PASSWORD=$DB_PASS \
-e MYSQL_PASSWORD=$DB_PASS \
-e MYSQL_DATABASE=$DB_NAME \
-e MYSQL_USER=$DB_USER \
--name $CONTAINER_NAME_DB -v "$PWD/database":/var/lib/mysql \
docker.io/mariadb:latest

sudo podman run --detach --pod $POD_NAME \
-e WORDPRESS_DB_HOST=127.0.0.1:3306 \
-e WORDPRESS_DB_NAME=$DB_NAME \
-e WORDPRESS_DB_USER=$DB_USER \
-e WORDPRESS_DB_PASSWORD=$DB_PASS \
--name $CONTAINER_NAME_WP -v "$PWD/html":/var/www/html \
docker.io/wordpress

另外,我有点不确定在哪里发布这个问题。如果服务器故障或另一个堆栈交换更适合,我会很乐意在那里发布。

wrrgggsh

wrrgggsh1#

实际上,您的代码只需要做一些小的修改就可以工作,我删除了sudo,并将pod的外部端口从80改为8090,所以现在所有的东西都是以非root用户的身份运行的。

#!/bin/bash
# https://stackoverflow.com/questions/74054932/how-to-install-and-setup-wordpress-using-podman

# Set environment variables:
DB_NAME='wordpress_db'
DB_PASS='mysupersecurepass'
DB_USER='justbeauniqueuser'
POD_NAME='wordpress_with_mariadb'
CONTAINER_NAME_DB='wordpress_db'
CONTAINER_NAME_WP='wordpress'

mkdir -p html
mkdir -p database

# Remove previous attempts
podman pod rm -f $POD_NAME

# Pull before run, bc: invalid reference format error
podman pull docker.io/mariadb:latest
podman pull docker.io/wordpress

# Create a pod instead of --link. 
# So both containers are able to reach each others.
podman pod create -n $POD_NAME -p 8090:80

podman run --detach --pod $POD_NAME \
-e MYSQL_ROOT_PASSWORD=$DB_PASS \
-e MYSQL_PASSWORD=$DB_PASS \
-e MYSQL_DATABASE=$DB_NAME \
-e MYSQL_USER=$DB_USER \
--name $CONTAINER_NAME_DB -v "$PWD/database":/var/lib/mysql \
docker.io/mariadb:latest

podman run --detach --pod $POD_NAME \
-e WORDPRESS_DB_HOST=127.0.0.1:3306 \
-e WORDPRESS_DB_NAME=$DB_NAME \
-e WORDPRESS_DB_USER=$DB_USER \
-e WORDPRESS_DB_PASSWORD=$DB_PASS \
--name $CONTAINER_NAME_WP -v "$PWD/html":/var/www/html \
docker.io/wordpress

相关问题