首页 > 解决方案 > 在 Windows 上运行 wordpress docker recipe 的空响应

问题描述

我正在尝试使用 Docker for windows 运行一个基本的 wordpress 应用程序。我只是按照这里的食谱:https ://docs.docker.com/compose/wordpress/

这是我的docker-compose.yml

# docker-compose.yml
version: '3.3'

services:
    db:
        image: mysql:5.7
        volumes:
            - db_data:/var/lib/mysql
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
            MYSQL_DATABASE: ${MYSQL_DB}
            MYSQL_USER: ${MYSQL_USER}
            MYSQL_PASSWORD: ${MYSQL_PASSWORD}

    wordpress:
        depends_on:
            - db
        image: wordpress:latest
        ports:
            - "8080:80"
        restart: always
        environment:
            WORDPRESS_DB_HOST: db:${MYSQL_PORT}
            WORDPRESS_DB_USER: ${WORDPRESS_DB_USER}
            WORDPRESS_DB_PASSWORD: ${WORDPRESS_DB_PASSWORD}

volumes:
    db_data:

以及随之而来的.env文件:

# DATABASE
MYSQL_DB=wordpress
MYSQL_USER=wordpress
MYSQL_PASSWORD=wordpress
MYSQL_ROOT_PASSWORD=somewordpress
MYSQL_PORT=3306

#WORDPRESS
WORDPRESS_DB_USER=wordpress
WORDPRESS_DB_PASSWORD=wordpress

当我运行docker-compose up -d一切正常。但是当我尝试到达时,http://127.0.0.1:8080我只是一次ERR_EMPTY_RESPONSE又一次地得到一个,即使我等了几个小时(文档说安装可能需要几分钟的后台,但不!)

如果我运行,docker-compose up我可以看到 mysql 用户的循环错误访问被拒绝...我错过了 mysql 用户创建的某些内容吗?

非常感谢 !

标签: wordpressdockerdocker-for-windows

解决方案


好的,我终于成功了。这是两个问题的结合!

首先,我们必须将 wordpress 容器插入到 root mysql 用户中,除非它没有创建表等权限。

wordpress:
    depends_on:
        - db
    image: wordpress:latest
    ports:
        - "8080:80"
    restart: always
    environment:
        WORDPRESS_DB_HOST: db:${MYSQL_PORT}
        WORDPRESS_DB_USER: root
        WORDPRESS_DB_PASSWORD: ${MYSQL_ROOT_PASSWORD}

其次,它db_data是一个卷,所以 Docker 将它保存在某个地方。当我运行 a 时,docker volume ls我只是重新识别了在多次尝试期间创建的数十个卷。

但我真的认为主要问题是 wordpress 访问数据库,它阻止了所有的安装过程。


推荐阅读