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-compose up、build、downを実行しましたが、すべて同じです。
公式のWordPress docker imageは、設定した環境変数を使用してwp-config.phpを自動的に構成します[ documentation ]。
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 image's docker-entrypoint.sh
を実行して環境変数に設定された値を含むファイル。
WORDPRESS_CONFIG_EXTRA
環境変数を使用して、wp-config.php
ファイル内の他の構成値を定義できます。
例として:
WORDPRESS_CONFIG_EXTRA: |
define('WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
トリック:
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はそれを再度コピーします...しかし、それは機能します!