有了docker,我可以在几乎所有的平台上运行WordPress example进行docker-compose,而无需事先了解docker。
我在寻找一种方法来实现与Podman相同的功能。
在我的情况下,有一个快速的跨平台的方式来设置一个工作的WordPress安装开发。
由于波德曼要年轻得多,2022年的一个有效答案也将是:这是不可能的,因为....../仅可能提供约束X。
尽管如此,我还是想为其他人创造一个切入点,他们在未来遇到同样的问题。
我在下面贴出了我自己的努力。在我花更多的时间调试大量的小问题(但仍然可以解决)之前,我想看看是否有人遇到了同样的问题,并且已经有了解决方案。如果你有,请清楚地记录它的约束。
我的特殊问题,作为参考
- 我使用的是Ubuntu 20.04,
podman -v
给出的是3.4.2。
1.装卸工/搬运工组合
- 当我在docker的WordPress
.yml
-文件上使用docker-compose up
和Podman back-end时,我遇到了“重复的挂载目标”issue。 podman-compose
是Podman 4.1.0的一部分,在我写这篇文章时,它是Ubuntu上的not available。
1.红帽示例
- example of Red Hat给出“建立数据库连接时出错...无法建立与位于
mysql
的数据库服务器的联系”。 - 上面的A solution对我不起作用。share 可能是一个错别字。我试图用 unshare 替换。
- 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
另外,我有点不确定在哪里发布这个问题。如果服务器故障或另一个堆栈交换更适合,我会很乐意在那里发布。
1条答案
按热度按时间wrrgggsh1#
实际上,您的代码只需要做一些小的修改就可以工作,我删除了sudo,并将pod的外部端口从80改为8090,所以现在所有的东西都是以非root用户的身份运行的。