从自定义wordpress配置文件连接到mysql docker服务

时间:2019-04-25 11:11:30

标签: wordpress docker docker-compose

我想通过自定义wp-config文件将docker mysql服务连接到docker wordpress服务。这似乎很简单,但是我找不到直接的答案。

我只想知道在wp-config.php文件中键入什么作为此声明的值: define( 'DB_HOST', what_do_i_type_here );

我已经能够通过主机上的0.0.0.0:3307进行连接,并且可以使用wordpress图像环境变量WORDPRESS_DB_HOST等进行连接,但是我无法弄清楚如何通过wp-config文件手动连接。

这些是我尝试过的一些主机:

0.0.0.0:3307
127.0.0.1:3307
172.23.0.1:3307
docker.for.mac.localhost:3307
host.docker.internal:3307

这是我的docker-compose:

version: '3.3'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    ports:
      - "3307:3306"
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    links:
      - db:mysql
    volumes:
      - ./wp-content:/var/www/html/wp-content
      - ./wp-config.php:/var/www/html/wp-config.php
      - ./wp-blog-header.php:/var/www/html/wp-blog-header.php
    restart: always
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    links:
      - db:mysql
    ports:
      - "8009:80"
    environment:
      MYSQL_USERNAME: wordpress
      MYSQL_ROOT_PASSWORD: somewordpress
volumes:
  db_data: {}

这是我的wp-config文件中的配置:

# Database Configuration
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wordpress' );
define( 'DB_PASSWORD', 'wordpress' );
define( 'DB_HOST', '0.0.0.0:3307' );

// define( 'DB_HOST_SLAVE', '127.0.0.1' );
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', 'utf8_unicode_ci');

1 个答案:

答案 0 :(得分:1)

看看此页面: Networking in compose

每个容器都可以通过其主机名访问另一个。 您可以在wp-config.php文件中使用define( 'DB_HOST', db:3306 );