【问题标题】:How to install and setup WordPress using Podman如何使用 Podman 安装和设置 WordPress
【发布时间】:2022-12-30 06:00:03
【问题描述】:

使用 docker,我能够在几乎每个平台上为 docker-compose 运行WordPress example,而无需预先了解 docker。

我正在寻找一种方法来实现与Podman 相同的效果。
在我的例子中,有一个快速的跨平台方式来设置一个工作的 WordPress 安装以进行开发。

由于 Podman 年轻得多,因此 2022 年的有效答案也将是:这是不可能的,因为... / 只有在提供约束 X 的情况下才有可能。
我仍然想为将来遇到同样问题的其他人创建一个切入点。

我在下面发布了自己的努力。在我花更多时间调试许多小的(但仍然可以解决的)问题之前,我想看看其他人是否遇到过同样的问题并且已经有了解决方案。如果你有,请清楚地记录它的限制。

我的具体问题,仅供参考

  • 我在 Ubuntu 20.04 上,podman -v 给出了 3.4.2。
  • 当我在 docker 的 WordPress .yml 文件上使用 docker-compose upPodman back-end 时,我遇到了“重复安装目标”issue
  • podman-compose 是 Podman 4.1.0 的一部分,在我写这篇文章时它在 Ubuntu 上是 not available
  • example of Red Hat 给出“建立数据库连接时出错...无法建立与位于mysql 的数据库服务器的联系”。
  • A solution 以上对我不起作用。分享很可能是错字。我试着用取消分享.
  • 我找到了一个example,它使用 pod 而不是 docker-compose.yml 文件。但它是为 Cent OS 编写的。
  • 我修改了 Cent OS 示例,请参阅下面的脚本。我让容器启动并运行。但是,WordPress 无法连接到数据库。
# 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

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

【问题讨论】:

  • 我试过结合docker.io/library/wordpressdocker.io/library/mariadb.好像是work。接下来我想尝试的是梳理docker.io/bitnami/mariadb使用基于 fedora 的 wordpress,同时使用 --user nonrootusersocket activation 运行。 (我可能需要一段时间才能找到时间)

标签: wordpress podman


【解决方案1】:

实际上,您的代码只需稍作改动即可工作。 我删除了 sudo,并将 pod 外部端口更改为 8090,而不是 80。所以现在一切都以非 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-24
    • 2021-07-01
    • 2020-01-10
    • 1970-01-01
    • 2014-08-13
    • 2015-08-01
    • 2019-02-14
    • 2020-06-20
    相关资源
    最近更新 更多