0

我有一个在 Mac OS 之上的 docker 容器中运行的 simlpe wordpress 网站。当我尝试运行简单的静态插件时,它根本不起作用。我看不到任何日志。诊断部分显示如下失败。

在此处输入图像描述

Checking if WordPress can make requests to itself from 172.20.0.3 X FAIL

我使用 docker-compose 启动容器,如此处所述 - https://docs.docker.com/samples/wordpress/

我在这里想念什么?我真的很想生成我网站的静态版本。任何帮助表示赞赏。

我已经在这里尝试了建议的修复,但这对我不起作用。

问候,沙姆兰。

4

3 回答 3

1

在我的情况下,问题是端口映射。

我正在映射 8080:80,因此 Wordpress 在技术上托管在容器内的 80 上,但 Url 被定义为 localhost:8080(wordpress),使得容器无法访问它。

解决方案:

使用端口映射 80:80

于 2021-11-12T05:44:12.057 回答
1

您需要从docker添加IP地址只需要查看docker中的日志即可;

docker-compose logs -f
wordpress_1  | 172.23.0.1 - - [25/Jul/2021:14:39:19 +0000] "POST /wp-admin/admin-ajax.php HTTP/1.1" 200 609

找到您的 IP 地址,然后将其写入 docker-compose 文件中:

wordpress:
  image: docker.io/bitnami/wordpress:5
  extra_hosts:
    - localhost:172.23.0.1
于 2021-07-25T14:41:35.323 回答
0

您可以修改 Wordpress 站点 URL 以使用 Docker 容器 IP 地址并在http://172.20.0.3/wp-admin访问它。然后容器将能够在端口 80 上与自身通信。

问题是 Docker 容器无法与分配给 Web 服务器的端口以外的其他端口进行通信。例如,容器是使用以下映射创建的:

wordpress:
     image: wordpress:latest
     ports:
       - "8088:80"
     volumes:
       - ./app:/var/www/html

我已经使用http://0.0.0.0:8088安装了 Wordpress ,因此将站点 URL 设置为这样。在容器内,无法访问 localhost:8088,只能访问 localhost:80。使用容器公共 IP 设置站点 URL 允许使用 IP 地址与端口 80 进行内部通信。

于 2021-12-28T20:26:53.040 回答