Wordpress wp-config.php 不在 Dockers 中更新?
Wordpress wp-config.php doesn't update in Dockers?
我正在使用 Wordpress 和 docker 容器。问题是我更新了 wp-config.php 文件,但一切看起来都一样。
我有这样的东西:
CONTAINER ID IMAGE NAMES
b2711d4b72a1 phpmyadmin/phpmyadmin website_phpmyadmin_1
8a89ee46d673 wordpress:4.7.5 website_wordpress_1
2a167667f705 mysql:5.7 website_db_1
我的 docker-compose.yaml 看起来像这样:
version: '2'
services:
wordpress:
depends_on:
- db
image: wordpress:4.7.5
restart: always
volumes:
- ./wp-content:/var/www/html/wp-content
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: p4ssw0rd!
ports:
- 80:80
- 443:443
networks:
- back
db:
image: mysql:5.7
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: p4ssw0rd!
networks:
- back
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8080:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: p4ssw0rd!
networks:
- back
networks:
back:
volumes:
db_data:
我有运行 docker-组合、构建和组合,但一切都是一样的。
官方 WordPress docker 图像将使用您设置的环境变量 [documentation] 自动配置 wp-config.php。
如果有WORDPRESS_DB_HOST
、WORDPRESS_DB_PASSWORD
等任何变量,它们将用于在创建容器时构建wp-config.php
文件。
如果要提供自定义wp-config.php
文件,需要确保没有相关的环境变量,并为修改后的文件创建一个卷映射,如下所示:
version: '2'
...
volumes:
- ./wp-content:/var/www/html/wp-content
- ./wp-config.php:/var/www/html/wp-config.php
...
在 docker-compose up
上,Docker 会将您的自定义 wp-config.php 加载到容器中,然后 运行 WordPress 图像的 docker-entrypoint.sh
会更新文件使用环境变量中设置的值。
诀窍:
wp:
image: wordpress:latest
ports:
- 80:80
volumes:
- ./wp-content:/var/www/html/wp-content
- ./wp-config.php:/usr/src/wordpress/wp-config-sample.php
当本地 wp-config.php 发生变化时,您应该从容器中删除 /var/www/html/wp-config.php,docker 将再次复制它...但它有效!
您可以使用 WORDPRESS_CONFIG_EXTRA
环境变量来定义 wp-config.php
文件中的任何其他配置值。
举个例子:
WORDPRESS_CONFIG_EXTRA: |
define('WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
我正在使用 Wordpress 和 docker 容器。问题是我更新了 wp-config.php 文件,但一切看起来都一样。 我有这样的东西:
CONTAINER ID IMAGE NAMES
b2711d4b72a1 phpmyadmin/phpmyadmin website_phpmyadmin_1
8a89ee46d673 wordpress:4.7.5 website_wordpress_1
2a167667f705 mysql:5.7 website_db_1
我的 docker-compose.yaml 看起来像这样:
version: '2'
services:
wordpress:
depends_on:
- db
image: wordpress:4.7.5
restart: always
volumes:
- ./wp-content:/var/www/html/wp-content
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: p4ssw0rd!
ports:
- 80:80
- 443:443
networks:
- back
db:
image: mysql:5.7
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: p4ssw0rd!
networks:
- back
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8080:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: p4ssw0rd!
networks:
- back
networks:
back:
volumes:
db_data:
我有运行 docker-组合、构建和组合,但一切都是一样的。
官方 WordPress docker 图像将使用您设置的环境变量 [documentation] 自动配置 wp-config.php。
如果有WORDPRESS_DB_HOST
、WORDPRESS_DB_PASSWORD
等任何变量,它们将用于在创建容器时构建wp-config.php
文件。
如果要提供自定义wp-config.php
文件,需要确保没有相关的环境变量,并为修改后的文件创建一个卷映射,如下所示:
version: '2'
...
volumes:
- ./wp-content:/var/www/html/wp-content
- ./wp-config.php:/var/www/html/wp-config.php
...
在 docker-compose up
上,Docker 会将您的自定义 wp-config.php 加载到容器中,然后 运行 WordPress 图像的 docker-entrypoint.sh
会更新文件使用环境变量中设置的值。
诀窍:
wp:
image: wordpress:latest
ports:
- 80:80
volumes:
- ./wp-content:/var/www/html/wp-content
- ./wp-config.php:/usr/src/wordpress/wp-config-sample.php
当本地 wp-config.php 发生变化时,您应该从容器中删除 /var/www/html/wp-config.php,docker 将再次复制它...但它有效!
您可以使用 WORDPRESS_CONFIG_EXTRA
环境变量来定义 wp-config.php
文件中的任何其他配置值。
举个例子:
WORDPRESS_CONFIG_EXTRA: |
define('WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);